0

我正在建立一个留言板,但我对数据库设计有疑问。添加新消息后,如果是新消息,则会创建主题。问题是,我应该在主题表中保留主题的创建日期和创建者,还是应该使用sql从消息表中获取?

选项 a - 数据库:

  • 用户:id,用户名
  • 主题:id、主题、create_date、creator_id(用户)
  • 消息:id、subject_id、create_date、creator_id(用户)

选项 b - 数据库:

  • 用户:id,用户名
  • 主题:id,主题
  • 消息:id、subject_id、create_date、creator_id(用户)

第二个在设计上似乎更好,没有更多的重复数据。但在第一个选项中,会有更轻的 sql 查询..

哪一个更好?

4

1 回答 1

0

由于消息创建日期和创建者与主题创建日期和创建者相同,而不是这两个选项,您可以规范化您的表格并将它们存储在一个地方:

  • 用户:id,用户名
  • 主题:id、主题、create_date、creator_id(用户)
  • 消息:id、subject_id、Sender_id、Send_date、ReplyMessage_Id。
于 2013-05-27T15:19:49.720 回答