我正在尝试构建一个消息/聊天系统。它可以按时间顺序存储两个人之间的对话。此外,如果用户 A 删除对话,用户 B 仍应有权访问该对话,直到他希望删除它们为止。
收件箱 - 用户从各个用户收到的所有消息将与来自该特定线程的最新消息一起显示。
对话屏幕 - 用户 A 和用户 B 之间的对话的时间顺序
这是我提出的数据库的基本结构。我应该将消息存储在数据库中两次吗?
- id
- to_id
- from_id
- message
- 时间戳
- read
我将使用消息查找表来存储谁有权查看该消息
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。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)