内部消息传递的数据库设计(如 Facebook 消息)
在下面的数据库设计中,如何标记未读消息,以便我们知道谁阅读了该消息,无论是发送者还是接收者?
(即,当 X 向 Y 发送消息时,该消息将被标记为 Y 未读,直到 Y 阅读该消息,但 X 会被标记为已读,因为他发送了该消息)。
MESSAGE
- Id (PK)
- 主题
- 内容
- MessageTypeId (FK) - 消息、更新(全球广播)、通知等
- UserId (FK) - 创建者
- CreateDate
- ReadDate
MESSAGE_COMMENT
- Id (PK) )
- MessageId (FK)
- 内容
- UserId (FK) - 创建者
- CreatedDate
USER
- 名字 姓氏 用户
- 名
- 密码
- IsActive
- 等等
- ...等...
MESSAGE_TYPE
- Id
- 代码
- 名称
编辑:看起来像设计不完整。
In the following database design, how do I mark an unread message, so we know who read the message either the sender and recipient?
(ie When person X sends a message to person Y, the message will be marked as unread for person Y until person Y reads the message, but its marked as read for person X because he sent the message).
MESSAGE
- Id (PK)
- Subject
- Content
- MessageTypeId (FK) - Message, Update (global board-cast), notifications etc
- UserId (FK) - creator
- CreateDate
- ReadDate
MESSAGE_COMMENT
- Id (PK)
- MessageId (FK)
- Content
- UserId (FK) - creator
- CreatedDate
USER
- FirstName
- LastName
- Username
- Password
- IsActive
- etc...etc...
MESSAGE_TYPE
- Id
- Code
- Name
EDIT: it seems like the design is incomplete.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以添加一个链接用户 ID 和消息 ID 的
Read
表。创建消息时,应用程序会自动放入创建者的 UserID 和 MessageID。然后,当接收者读取消息时,它会记录 ReceiverID 和 MessageId。因此,虽然没有 ReceiverID 和 MessageID 记录,但该消息对于接收者来说将显示为未读。
You could add a
Read
table which links user ID and message ID. When a message is created the application automatically puts in the UserID of the creator and the MessageID. Then when the receiver reads the message it records the ReceiverID and the MessageId.So while there is no record for ReceiverID and MessageID, the message will appear unread for the receiver.