繁体   English   中英

帖子和评论的数据库设计

[英]Database design for posts and comments

如果一个帖子有很多评论,并且这些评论与帖子本质上是相同的(例如,它们具有标题,图片和音频等),我应该创建两个表格还是一个表格?

例如,如果我仅使用一个表,则可以有一个parent_id列,因此,如果它不是对任何内容的答复,则为null,否则它将具有父帖子的id。 另一方面,我可以创建一个发布表和一个注释表。 评论还可以回复其他评论,因此可能会使您感到困惑。

  *Post*
    id
    title
    content
    image
    audio
    parent_id

要么,

*Post*                        *Comments*
id                             id
title                          title
content                        content
image                          author_id 
audio                          post_id
author_id                      image
                               audio

第二个选项将允许创建索引。 实际上,我什至不必添加author_id或post_id如果我从一开始就使用索引,我会吗?

您对此有何想法? 哪个会更有效? 我想为此使用redbeanphp。

第二种选择会更好。 显示留言板时,您无需关心评论,而通过带有索引的父帖子ID列查找评论很快。 帖子和评论可能会有不同的字段,因此将它们分开是正确的。 第一个选项的父id索引可以很好地工作,但是从概念上讲,它是一团糟,您基本上是在创建一个索引,以用于相对于帖子的一半或许多评论。

通常在 :表被称为实体,因此应用程序中的每个实体都应由表分开并演示。 在这里,尽管您认为帖子和评论各自具有相同的数据类型,但最终它们每个都是单独的实体,因此应将它们分为两个表。 这种行为不是个人观点。 这是导致更顺畅的应用程序开发的基本规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM