在单个数据库表中存储不同聊天的消息

问题描述:

我正在聊天网站上工作。我如何存储2个不同聊天的消息。我是否必须为每个聊天创建一个新表格,或者是否可以有一个存储所有聊天的表格?在单个数据库表中存储不同聊天的消息

从长远来看(即在搜索过程中),后面的方法会受到影响,因为每次用户打开聊天时都会从该表中检索所有消息?

这里是我推荐的,只用一个表来存储消息,你将需要更多的表来维护其他相关数据。 也作为群组聊天对待一对一的聊天,区别仅在于最终用户它只被视为1-1。

以下仅仅是基本的结构,让你开始,在实际你将不得不添加更多的列或改变结构,以支持数据同步,读,交付收件人,附件等

Table: User 
Columns: userId, name, image and other user info columns 

Table: Group 
Columns: groupId, name 

Table: Group_User_X 
Columns: groupId, userId 

Table: Message 
Columns: messageId, senderUserId, groupId, content 

现在,为任何给定的用户加载消息,您可以简单地加入Group_User_X和消息表,并为用户所属的组提取消息。

如果您需要任何进一步的帮助,您可以与我联系[email protected]

+0

感谢你了 –

+0

我还有一个困惑。每个消息的长度可以从只是一个HI变化一个很长的消息..所以,如果你使用的是mysql,那么我应该使用哪种数据类型的消息内容 –

+0

,你可以使用文本http://boolean.co.nz/blog/max-length-for-mysql-text-field-类型/ 135/ –