|
|
1
3
有几种明显的方法可以设计您的桌子:
Comments
--------
ID
News NewsComments
---- ------------
ID NewsID
CommentID
Articles ArticleComments
-------- ---------------
ID ArticleID
CommentID
Users UserComments
----- ------------
ID UserID
CommentID
这样做的优点是相对容易查询每个功能的注释。但是,这种风格会受到引用完整性的影响:可以将一条评论连接到多条评论、新闻文章和用户。此外,它的可伸缩性不是很强:如果为RSS提要、收藏夹链接、用户状态等添加注释,那么所有这些类型都有中间表。 2) 另一种方法是稍微非规范化的版本: Comments -------- ID TableName PkID (Connects the primary key in other tables) News ---- ID Articles -------- ID Users ----- ID
3) 最后一个选项需要为每个功能提供大量冗余的“注释”表。 News NewsComments ---- ------------ ID NewsID Articles ArticleComments -------- --------------- ID ArticleID Users UserComments ----- ------------ ID UserID
|
|
|
2
2
对于每个内容表,我可能会有一个单独的注释表,这样我就可以利用外键关系在更改/删除原始内容时自动管理更新/删除。所以如果我有新闻和文章表,那么我会有新闻评论和文章评论表。每一个都有一个content\u id字段和一个user\u id字段。content\u id字段将引用回content表,user\u id字段将引用回users表。我在适当的内容和注释表以及用户和每个注释表之间建立外键关系,并在更新/删除时传播更改。您可能还希望在id字段上设置索引,以便在它们之间进行索引联接。 如果只有一个comments表,则必须在代码中手动管理关系,而不是让DB为您处理关系——因为您只能让FK与另一个表相关。 |
|
|
3
0
|
|
4
0
每行只有一个非零。这将使查询比使用中间表更简单。
|
|
|
Jordan Williams · SQL列中的外键列表 4 年前 |
|
|
nicolallias · 无法无错误地联接实体 8 年前 |
|
|
Florian · ef核心-两个一对一的主密钥 8 年前 |
|
|
John Katsantas · 我如何制作这个图书馆的ER图? 8 年前 |
|
|
Laurent Parmentier · 环回关系从不返回值 8 年前 |
|
|
Robert · Symfony 4序列化关系值为空的实体 8 年前 |
|
|
user9181771 · ER图设计问题 8 年前 |