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

Storing messages of different chats in a single database table

我正在开发一个聊天网站。如何存储 2 个不同聊天的消息。我是否必须为每个聊天创建一个新的 table,或者我可以用一个 table 存储所有聊天吗?

以后的方法是否会在长时间 运行 中受到影响(即在搜索期间),因为每次用户打开聊天时都会从此 table 检索所有消息?

这是我的建议,只使用一个 table 来存储消息,您将需要更多的 table 来维护其他相关数据。 也将一对一聊天也视为群聊,唯一的区别是对于最终用户而言,它仅被视为一对一。

下面只是让您入门的基本结构,实际上您必须添加更多列或更改结构以支持数据同步、阅读、已发送的收件人、附件等

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 和消息 table 并获取用户所属组的消息。

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

与我联系

用于聊天应用程序的服务器端数据库

客户端和服务器之间的数据传输使用单个令牌密钥处理。这里的服务器端脚本 运行 在服务器上而不是客户端服务器上,以便响应用户设备中执行的操作来传递内容(消息)。

Server side database architecture

聊天应用程序的客户端数据库

该图解说了服务器通过访问令牌密钥向客户端设备传输数据的消息传输流程。此外,客户端设备向多个服务器发送请求以访问具有客户端令牌密钥的消息。

Client side database architecture