2012-09-29 39 views

回答

2

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; 
+0

也许我不够明确;)我想知道我应该如何实现一个REPLAY功能。例如:有评论A,B,C,D,其中A和C是最高评论和B&D评论重播A –

+0

Ahh ..抱歉误导您的帖子。我调整了我的答案。 – JvdBerg

+0

您的解决方案很难从数据库 –