规范化表格

时间:2013-05-18 18:30:45

标签: database database-design normalization database-normalization

我想将此表规范化为3NF

              -----------------------------------
              |        |         |              |
              |        V         V              V
----------------------------------------------------------------------------------------------------------
|user_name|post_id|post_title|post_text|post_submitted_time|comment_id|comment_text|submited_comment_time|
----------------------------------------------------------------------------------------------------------
     |        |                                                  ^            ^                ^
     |        |                                                  |            |                |
     -------------------------------------------------------------------------------------------

我如何做到这一点?

2 个答案:

答案 0 :(得分:1)

将它分成三个表,这就是整个魔术。

用户:

  • ID(PK)
  • 名称

发表:

  • ID(PK)
  • 标题
  • 文本
  • Submitted_Time
  • UserID(FK)

注释:

  • ID(PK)
  • 文本
  • UserID(FK)
  • PostID(FK)

<强>关系:

一个帖子/评论始终分配给一个用户。我建议您为用户使用自己的表,因为您可能希望将来扩展该表。

一个帖子可以有多个评论。但一条评论只有一条指定的帖子

您还需要添加Foreign Keys,以确保数据保持一致。

答案 1 :(得分:1)

假设user_name是PK。

------------------------------------------------------------
|post_id|post_title|post_text|post_submitted_time|user_name|
------------------------------------------------------------
     1      foo       bar          08:15             baz  

------------------------------------------------------------------
|comment_id|comment_text|submitted_comment_time|user_name|post_id|
------------------------------------------------------------------
     1         blabla          13:37             anyname     1
     2         foobar          13:38             anyname     1