【问题标题】:What's the ideal database table structure for forum posts and replies?论坛帖子和回复的理想数据库表结构是什么?
【发布时间】:2022-03-29 14:26:35
【问题描述】:

我一直在尝试创建一个在线讨论论坛作为一个有趣的项目。在这个应用程序中,注册用户可以创建一个“主题”。其他用户可以回复该主题(我们称他们为“帖子”)。此外,人们可以“回复”帖子。但是,目前不需要回复“回复”。

我想创建一个这样的数据库架构

但是,posts 和 reply 表基本上包含相同类型的字段。唯一的例外是,posts 表中的 topic_id 列将引用主题表,replies 表中的 post_id 列将引用 posts 表

那么,如果我只需要为帖子和回复保留一个表格,我该如何管理“主题和帖子”和“帖子和回复”之间的关系?在这种情况下,理想的解决方案是什么?

或者

我应该只保留现有的架构吗?

谢谢!

【问题讨论】:

    标签: mysql database


    【解决方案1】:

    您只能为帖子和回复保留一张桌子。对于 post 和 reply 之间的关系,添加一个新的列名称 post_id。该列对于帖子可以为空,在回复的情况下插入帖子的id

    【讨论】:

    • 谢谢!我想知道,与我现有的架构相比,这种方法是否有任何特定的优势或劣势(就数据库优化而言)
    • 这取决于个人喜好。我可能会采用单表方法,其中“帖子”只是没有父母的“回复”(即 parent_id 为空)
    • @strawberry Erm,他是这么说的 ;-)
    【解决方案2】:

    回复不是帖子,因此请使用不同的表格。桌子不花钱。 1个回复可以有很多帖子,在同一张表中很乱,查询数据时会造成非常丑陋的sql。回复可以有回复,所以在回复表中添加一个父 id 以便您可以向上钻取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多