我正在try 建立一个消息传递/聊天系统.它可以按时间顺序存储两个人之间的对话.此外,如果用户A删除了该对话,则用户B在希望删除它们之前仍然应该有权访问该对话.
收件箱-用户从不同用户收到的所有邮件都将与来自该特定主题的最新邮件一起显示.
对话屏幕-用户A和用户B之间对话的时间顺序
这是我想出的数据库的基本 struct .我应该在数据库中存储两次消息吗?
- ID号
- to_ID号
- from_ID号
- 消息
- 时间戳
- 阅读
我正在try 建立一个消息传递/聊天系统.它可以按时间顺序存储两个人之间的对话.此外,如果用户A删除了该对话,则用户B在希望删除它们之前仍然应该有权访问该对话.
收件箱-用户从不同用户收到的所有邮件都将与来自该特定主题的最新邮件一起显示.
对话屏幕-用户A和用户B之间对话的时间顺序
这是我想出的数据库的基本 struct .我应该在数据库中存储两次消息吗?
我会使用一个查询表来存储有权查看该邮件的用户的邮件
table->message | table->messageUsers
id->0, message->'hi', user_id->1 user_id->1, message_id->0
user_id->2, message_id->0
这样,如果用户删除了他们的消息,他们实际上只是删除了他们与消息的关系,而不是消息本身.您只需将它们从messageUsers表中删除即可.或将活动字段设置为1或0.