mysql - 关于构建评论系统的建议

标签 mysql database database-design

我是数据库设计的初学者,我想创建一个评论系统,能够回复用户评论并显示用户所做的所有评论。此外,将会有很多页面,每个页面都有一个用于评论的部分。

到目前为止,我已经提出了两种可能的数据库设计来构建评论系统。第一个将有一个用于每个页面评论的表格和一个用于每个用户评论的表格。页面评论表将具有用于表链接目的的 user_id 和 page_id 字段。

第二个潜在的设计结构是拥有一个大型评论分区表,其中只有 comment_id 和 user_id 字段用于表链接。我还没想好如何实现回复功能;在解决这个问题之前,我想获得一些关于哪种设计方法(如果有的话)可以有效执行的意见。

最佳答案

我会使用两个表:一个用于评论线程,另一个用于评论。评论线程看起来像这样:

id
/* Other bookkeeping things like created time and such */

和评论:

id
thread_id
user_id
comment
parent_id
/* Other bookkeeping stuff */

然后通过向页表添加 comment_thread_id 列将线程附加到页面。

拥有单独的不同评论线程可以让您在将来方便地附加访问控制或类似的扩展,它还允许您将评论线程附加到事物上。将评论线程附加到页面而不是相反,这样以后就可以轻松地将评论线程添加到系统中的其他对象。

关于mysql - 关于构建评论系统的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5320605/

相关文章:

php - 应用程序日志 - 使用 MySQL 或文本进行跟踪和维护

mysql - 根据每行的repeater控件的值执行计数 C# ASP.NET

php - 向数据库记录发送电子邮件时出现 Codeigniter 错误

mysql - 添加 bool 字段与检查字段是否为 NULL?

sql - SQL 表中两个条目之间的关联

mysql - 数据库设计: multiple values for single field in a record

mysql - 如何恢复mysql用户

javascript - 单击加载 PHP 文件

database - Laravel 在数据库上执行计划作业

database - 在数据库列中存储分隔列表真的那么糟糕吗?