Mysql 消息传递系统数据库模式
我试图用PHP和MySQL实现一个消息传递系统,但在决定如何处理表和查询时遇到了一些问题 对于一个允许多个参与者参与的系统,什么是最好的方法?我想我可能需要3个表(除了一个users表) 差不多Mysql 消息传递系统数据库模式,mysql,database,schema,messaging,message,Mysql,Database,Schema,Messaging,Message,我试图用PHP和MySQL实现一个消息传递系统,但在决定如何处理表和查询时遇到了一些问题 对于一个允许多个参与者参与的系统,什么是最好的方法?我想我可能需要3个表(除了一个users表) 差不多 Conversation ------------ id Messages -------- id conversation_id from_id subject message from_timestamp Participants ------------ conversation_id use
Conversation
------------
id
Messages
--------
id
conversation_id
from_id
subject
message
from_timestamp
Participants
------------
conversation_id
user_id
last_read_timestamp
按照设置的方式,我必须按时间戳检查读取的消息,而不是勾选每条消息。我还可以随时添加参与者
你们觉得怎么样
提前谢谢。我没看到什么好抱怨的:)我可能会将上次修改日期缓存在对话表中,以便快速显示“未读”对话列表。每次在对话中发布消息时,此日期都会更新。我会将主题字段放在对话表上。把它放在每一条信息上看起来是多余的。
此外,我还将会话的创建时间和作者用户id保存在其表中 @ChrisWalton-“发件人id”将是消息发件人的用户id。许多参与者可能属于一个对话,但一条消息可能只属于一个参与者(或前参与者-仍在思考如何做到这一点)。对话的所有参与者都可能看到与其相关的消息。Cheers我认为from_id是作者的用户id。如果我理解正确,“参与者”表将对话链接到用户表(此处未显示),并存储用户上次阅读此对话的时间。希望了解您如何处理一个参与者的问题!这是我见过的更好的表模式之一。