我正在建立一个论坛,我想知道我是否应该有一个表格,我存储所有主要帖子,然后在另一个表格中存储所有答案。
我总是将所有内容存储在一个表中,使其向东计数并让用户评论每个帖子(另一个表中的注释)。
我该怎么办?优点和缺点?试图谷歌,但没有找到任何东西。
感谢您的帮助!
答案 0 :(得分:0)
这是非常主观的,因为它取决于您的需求和意图。让我解释一下......
论坛,例如它们,通常采用两种形式中的一种。它们有时以主帖的形式出现,随后发表评论。因此,主要帖子逻辑上将存在于一个表中,而评论则存在于另一个表中。 Facebook和Stack Exchange网站就是这方面的例子。
在其他情况下,内容可以采用评论列表的形式。更传统的论坛采用这种形式。在要求层次结构而不是纯日期排序的情况下,单表方法更有意义。
在这两种情况下,都可以通过创建parent
和child
列来处理层次结构。
我个人的偏好是使用一个表,除非主帖包含评论不需要的附加数据的顺序。这只是一个效率问题,但你肯定不希望数千或数百万行NULL
s占用空间无济于事。要区分帖子和评论,您可以使用任意数量的逻辑方案,例如不同的ID或标志列。
最终,这样的架构情况取决于相关项目。两种方法都有优点和缺点。在以后添加复杂性的情况下,使用多个表格可以为您的项目提供更多的“未来验证”。
答案 1 :(得分:0)
我通常遵循规则every type of dataset gets a own table
。这样你就可以干净地定义关系
您有类似
的类型由于可以为帖子和答案添加评论,因此您可以添加两个桥接表来定义此关系。
如果您将帖子和答案都保存到一个表中,则帖子表需要引用自己来定义帖子 - 回答一对多关系,这会使查询更复杂。
如果您希望能够级联,帖子可以有答案,答案可以有答案等等,您可能会更好地使用一个帖子表和一个指向帖子ID的parent_id
希望这有帮助。
答案 2 :(得分:-1)
嗯 - 因为一个帖子可以有多个答案,我会去一个单独的表。
临:
N
您在另一张表中已有评论的原因相同......