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

Database 在单个数据库表中存储不同聊天的消息,database,chat,messages,Database,Chat,Messages,我正在一个聊天网站上工作。如何存储两个不同聊天记录的消息。我是否必须为每个聊天创建一个新表,或者我可以有一个单独的表来存储所有聊天 从长远来看(即在搜索过程中),由于每次用户打开聊天室时都会从此表中检索所有消息,因此后一种方法是否会受到影响?我建议您只使用一个表来存储消息,您将需要很少的表来维护其他相关数据。 另外,将一对一聊天也视为群聊,唯一的区别是,对于最终用户,它仅被视为1-1 下面是入门的基本结构,实际上您需要添加更多列或更改结构以支持数据同步、读取、传递收件人、附件等 Table: U

我正在一个聊天网站上工作。如何存储两个不同聊天记录的消息。我是否必须为每个聊天创建一个新表,或者我可以有一个单独的表来存储所有聊天


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

我建议您只使用一个表来存储消息,您将需要很少的表来维护其他相关数据。 另外,将一对一聊天也视为群聊,唯一的区别是,对于最终用户,它仅被视为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用于聊天应用程序的服务器端数据库

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

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

图示说明了消息传输流,其中服务器通过访问令牌密钥向客户端设备传输数据。此外,客户端设备向多个服务器发送请求以使用客户端令牌密钥访问消息


非常感谢,我还有一个困惑。。每条消息的长度可能从一条问候语到一条长消息不等。。那么,对于消息内容,我应该采用什么数据类型呢?如果您使用的是mysql,您可以使用文本,顺便说一下,我使用的是oracle 10gso,您是说我应该使用大数据类型,即使它也存储小文本。这似乎是对每条记录的内存空间的浪费。这个问题有什么解决方案吗?或者我必须使用大数据类型?您链接的图片没有显示任何与数据库或数据库结构相关的内容,而是显示整个系统的非常高级的结构。这并不能回答OP的问题