如何实现嵌套评论系统?

Posted

技术标签:

【中文标题】如何实现嵌套评论系统?【英文标题】:How to implement a nested comment system? 【发布时间】:2011-07-13 22:15:10 【问题描述】:

实现这类事情的理想方式是什么?我现在的想法是拥有一个 cmets 表,并让每个评论都有一个线程标识符和父评论标识符。线程标识符将指示注释属于哪个线程,并允许使用 WHERE 子句的简单 mysql 语句。根据通常的数据库设计,每个评论都有一个 auto_increment 标识符,并且父标识符列将指示该评论是哪个评论的子评论。

这种类型的设计会将大部分压力放在 php 方面,因为它只需要一个 SQL 调用就可以从一个线程中获取所有 cmets。我发现的另一个实现是对每个嵌套级别都有一个 SQL 查询。这种解决方案会将压力放在 SQL 方面。

SO 将如何实现这一点?目前我很茫然,因为我不确定哪个解决方案是“最佳”解决方案,而且我对数据库设计、PHP 和 JQuery 还是很陌生。

谢谢。

【问题讨论】:

ferdychristant.com/blog//articles/DOMM-7QJPM7 【参考方案1】:

查看Managing Hierarchical Data in MySQL,特别是名为“嵌套集模型”的部分。您可能需要通读几次才能理解它(我做过),但这是值得的。这是一种非常强大的方式来处理嵌套数据并仅通过一个查询来检索您想要的部分。

不利的一面是,对于更新,您必须做更多的工作。

【讨论】:

以上是关于如何实现嵌套评论系统?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET DataList嵌套实现评论效果

ASP.NET DataList嵌套实现评论效果

评论系统数据库设计及实现

DjangoRestful 递归嵌套序列化器实现

数据建模实战之基于nested object实现博客与评论嵌套关系

如何使用 mongoose 和 nodejs 删除嵌套在 Post 模式中的评论?