内部消息传递的数据库设计(如 Facebook 消息)

发布于 2024-11-07 07:47:37 字数 734 浏览 3 评论 0原文

在下面的数据库设计中,如何标记未读消息,以便我们知道谁阅读了该消息,无论是发送者还是接收者?

(即,当 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

星軌x 2024-11-14 07:47:38

您可以添加一个链接用户 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文