【发布时间】:2023-07-09 16:59:01
【问题描述】:
我想为我的帖子建立一个评论系统。现在它只会是一个级别的深度,意味着评论和它的回复。 在阅读了网络上的各种文章后,有 2 种建议的方法来制作您的表格结构。
1.使用两个表
//comments table
-id
-post_id
-user_id
-comment
-created_at
-updated_at
-deleted_at
//replies table
-id
-comment_id
-user_id
-comment
-created_at
-updated_at
-deleted_at
然后是这两个表之间的一对多关系。现在是第二种方法
2。使用一张表
//comments table
-id
-post_id
-user_id
-comment
-parent_id //this is important
-created_at
-updated_at
-deleted_at
在第二种方法中,对于*评论,parent_id 可以设置为NULL。
您建议的方法是什么?
我认为第一个是更规范化的版本,而第二个给了我将来增加回复嵌套级别的灵活性,所以无论出于何种原因,如果我打算增加评论系统的嵌套级别,我不必更改数据库结构没有了。
此外,如果可能,请链接任何文章,该文章解释了为上述第二个表结构按正确顺序获取和重新排列评论的逻辑。
【问题讨论】:
-
解决方案 2 的标准化程度如何?仅仅因为它只有 1 个表并不能证明它的标准化程度较低。它偏离解 1 不偏离的范式是什么?
标签: php mysql database database-design