我正在聊天的网站上工作。如何存储2个不同聊天的消息。我是否必须为每个聊天创建一个新表,或者我可以有一个存储所有聊天的表吗?
从长远来看(即在搜索期间),后一种方法是否会受到影响,因为每次用户打开聊天时都会从该表中检索所有消息?
答案 0 :(得分:3)
这是我建议的,只使用一个表来存储消息,您将需要更多的表来维护其他相关数据。 同时对待一对一聊天也作为群聊只有最终用户才会被视为仅为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和Message表,并获取用户所属组的消息。
如果您需要任何进一步的帮助,可以通过contact@applozic.com与我联系
答案 1 :(得分:0)
聊天应用程序的服务器端数据库
使用单个令牌密钥处理客户端和服务器之间的数据传输。这里,服务器端脚本在服务器而不是客户端服务器上运行,以便响应于用户设备中执行的操作来传递内容(消息)。
Server side database architecture
聊天应用程序的客户端数据库
该图说明了消息传输流程,其中服务器通过访问令牌密钥来将数据传输到客户端设备。此外,客户端设备会将请求发送到多个服务器,以使用客户端令牌密钥访问消息。