内部消息的数据库设计(如facebook消息)

时间:2011-05-15 10:43:04

标签: sql-server database sql-server-2008 database-design relational-database

在以下数据库设计中,如何标记未读邮件,以便我们知道谁将邮件读取为发件人和收件人?

(即,当人X向人Y发送消息时,该消息将被标记为人Y未读,直到人Y读取该消息,但由于他发送了该消息,其被标记为对于人X的读取)。

MESSAGE

  • Id(PK)
  • 主题
  • 内容
  • MessageTypeId(FK) - 消息,更新(全局电路板播放),通知等
  • UserId(FK) - 创作者
  • CreateDate
  • ReadDate

MESSAGE_COMMENT

  • Id(PK)
  • MessageId(FK)
  • 内容
  • UserId(FK) - 创作者
  • CreatedDate

用户

  • 名字
  • 用户名
  • 密码
  • IsActive
  • 等...等...

MESSAGE_TYPE

  • 编号
  • 名称
编辑:设计似乎不完整。

1 个答案:

答案 0 :(得分:1)

您可以添加一个链接用户ID和消息ID的Read表。创建消息时,应用程序会自动放入创建者的UserID和MessageID。然后当接收器读取消息时,它记录ReceiverID和MessageId。

因此,虽然没有ReceiverID和MessageID记录,但接收方的消息显示为未读。