-3

コメント システムの最適な解決策はMySQL での階層データの管理です。

ただし、上位のコメントに対してのみ返信を許可する予定です。深さレベルは 1 つだけです。この場合、構造は複雑なツリーよりもはるかに単純になります。

このシナリオでそれを実装する他の方法はありますか? もっと簡単に、もっと簡単に、もっと速く?

4

1 に答える 1

2

1 レベルの実装は、N レベルの実装と同じです。

唯一の違いは、1 つのレベルのみを使用することです。

考えられる実装は次のようになります: すべてのコメントを 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;
于 2012-09-29T09:08:29.487 に答える