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

Abh*_*wal 5 database chat messages

我在一个聊天网站上工作。如何存储 2 个不同聊天的消息。我是否必须为每次聊天创建一个新表,还是可以有一个表存储所有聊天?

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

Dev*_*ain 9

这是我的建议,仅使用一张表来存储消息,您将需要更多的表来维护其他相关数据。还将一对一聊天也视为群聊,唯一的区别是对于最终用户而言,它仅被视为 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
Run Code Online (Sandbox Code Playgroud)

现在,要为任何给定用户加载消息,您只需加入 Group_User_X 和 Message 表并为用户所属的组获取消息。

如果您需要任何进一步的帮助,可以通过 contact@applozic.com 与我联系