Mysql 将评论存储到博客的理想方式是什么?

Mysql 将评论存储到博客的理想方式是什么?,mysql,django,database,Mysql,Django,Database,我正在使用django制作一个演示网站,在这个网站上你有博客。我想添加的是为每个博客添加评论的方法,我想弄明白的是如何安排数据库。我考虑了3个选项,要么你为每个博客存储一个评论列表,要么你存储一个所有评论及其所属博客的列表,要么你为每个博客创建一个包含评论的表格。就实现的难度和内存消耗而言,以下哪一项是最好的?让我们通过实体关系路线来设计它 在你的网站世界里有一个叫做评论的实体。它具有诸如comment\u text和datestamp之类的属性 每个评论都与一个帖子有关系。。。人们评论帖子

我正在使用django制作一个演示网站,在这个网站上你有博客。我想添加的是为每个博客添加评论的方法,我想弄明白的是如何安排数据库。我考虑了3个选项,要么你为每个博客存储一个评论列表,要么你存储一个所有评论及其所属博客的列表,要么你为每个博客创建一个包含评论的表格。就实现的难度和内存消耗而言,以下哪一项是最好的?

让我们通过实体关系路线来设计它

在你的网站世界里有一个叫做评论的实体。它具有诸如
comment\u text
datestamp
之类的属性

  • 每个评论都与一个帖子有关系。。。人们评论帖子

  • 每个评论都与一个人有关系。。。每条评论都有作者

  • 评论可能是也可能不是对先前评论的回复。如果是,它与另一个注释有关系

  • 这是适用于您的应用程序的正确实体关系模型吗?如果是这样,那太好了。如果没有,您可以修改它

    该注释实体的样式对应于具有这些列的RDBMS表

    • comment\u id
      代理主键(自动递增INT)
    • active
      TINYINT 1表示活动,2表示不活动/不可见/计划删除
    • post\u id
      与帖子的关系。永不为空
    • person\u id
      与某人的关系。如果您允许匿名评论(不要!),则可以为NULL,否则永远不会为NULL
    • replyto\u id
      回复的注释的
      comment\u id
      值。这可以是空的,也可以不是空的
    • comment\u text
      注释本身
    • datestamp
      撰写评论的日期和时间
    (如果允许编辑注释,则可能需要两个日期戳。)


    看到了吗?如果您整理出您想要的注释以及它们与系统其他部分的关系,那么您将知道如何设计数据库来保存它们。

    对于关系数据库,你通常有一个<代码>评论>代码>模型,其中有<代码>外键<代码> > <代码>博客>代码>。你也可以考虑对评论的回复。查看各种开源产品的数据库模式通常很有帮助。他们有一个评论表。只是出于好奇问一个问题匿名评论有什么问题?如果你把一个允许匿名内容的系统放在公共网上,你会被垃圾邮件淹没。