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

Php 如何实现只有1个深度级别的评论系统,php,mysql,sql,comments,hierarchy,Php,Mysql,Sql,Comments,Hierarchy,我已经读到,评论系统的最佳解决方案是 然而,我计划只允许回复最上面的评论-只有一个深度级别。在这种情况下,结构变得比复杂的树简单得多 在这个场景中有没有其他方法来实现它?更容易、更简单、更快的东西?1级的实现与N级的实现相同 唯一的区别是您只使用1个级别 一个可能的实现如下所示:将所有注释放在一个表中,并使用外键访问博客文章或任何您评论的内容。嵌套存储在ParentCommentId中。Id它的NULL它是根注释,如果它有一个值,如果它是对其他注释的注释 然后,制作一个简单的注释表单并将结果存储

我已经读到,评论系统的最佳解决方案是

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


在这个场景中有没有其他方法来实现它?更容易、更简单、更快的东西?

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

唯一的区别是您只使用1个级别

一个可能的实现如下所示:将所有注释放在一个表中,并使用外键访问博客文章或任何您评论的内容。嵌套存储在ParentCommentId中。Id它的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;

也许我不够清楚;)我想知道如何实现重播功能。示例:有注释A、B、C、D,其中A和C是顶部注释,B&D是注释AAhh的重播。。很抱歉误读了你的帖子。我调整了我的答案。您的解决方案使从数据库读取变得非常困难阅读将非常简单:
select*from comments,其中BlogId=:BlogId和ParentCommentId为Null
,以获取所有顶级注释。在客户端中折叠时,可以读取嵌套的注释。@GuryMax您的意思是
reply
而不是
replay