我读过评论系统的最佳解决方案是在 MySQL 中管理分层数据
但是,我计划只允许回复最热门的评论 - 只有一个深度级别。在这种情况下,结构变得比复杂的树要简单得多。
在这种情况下还有其他方法可以实现它吗?更简单,更简单,更快的东西?
1 级的实现与 N 级的实现相同。
唯一的区别是您只使用 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;