如何实现只有1个深度级别的评论系统

时间:2012-09-29 09:01:33

标签: php mysql sql comments hierarchy

我读过评论系统的最佳解决方案是Managing Hierarchical Data in MySQL

但是,我计划只允许回复最高评论 - 只有一个深度级别。在这种情况下,结构变得比复杂的树更简单。

在这种情况下,还有其他方法可以实现吗?更容易,更简单,更快捷的东西?

1 个答案:

答案 0 :(得分:2)

1级的实现与N级的实现相同。

唯一的区别是你只使用1级。

可能的实现如下所示:将所有注释放在1个表中,并使用外键访问博客文章或您评论的任何内容。嵌套存储在ParentCommentId中。如果它是NULL,那么它是一个根注释,如果它有一个值,如果它是对另一个注释的注释。

然后很容易制作一个简单的评论表格并将结果存储在数据库中。

表结构可能如下所示:

CREATE TABLE `Comments` (
  `CommentId` int(11) NOT NULL AUTO_INCREMENT,
  `BlogId` int(11) NOT NULL,
  `ParentCommentId` int(11),
  `Content` text NOT NULL,
  `Name` varchar(64) NOT NULL DEFAULT '',
  `EMail` varchar(64) DEFAULT NULL,
  `Url` varchar(64) DEFAULT NULL,
  `IP` varchar(20) NOT NULL DEFAULT '',
  `Created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `Modified` datetime DEFAULT NULL,
  PRIMARY KEY (`CommentId`),
  KEY `FK_Blog` (`BlogId`),
  CONSTRAINT `FK_CommentBlog` FOREIGN KEY (`BlogId`) REFERENCES `Blogs` (`BlogId`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;