1

「forum_topic」と「forum_comments」の 2 つのテーブルがあります。

たとえば、「select * from forum_topic where topic_id = 1」というクエリがある場合、「forum_comments.topic_id = forum_topic.topic_id」に基づいて forum_comments テーブルからすべてのコメントが必要ですが、フォーラムコメントはツリー ビュー形式にする必要があります。これは、"forum_comments" テーブルにも保存されているすべてのコメントに対して n レベルの返信があるためです。forum_comments テーブルには、"comment_id" を保持するフィールド "parent" があり、返信が作る。

1 - フォーラム_トピック

CREATE TABLE IF NOT EXISTS `forum_topic` (
  `topic_id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `category` int(11) NOT NULL,
  `content` text NOT NULL,
  `created_by` int(11) NOT NULL,
  `created_date` datetime NOT NULL,
  `view_count` int(11) NOT NULL,
  `last_activity` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `status` enum('publish','unpublish') NOT NULL,
  PRIMARY KEY (`topic_id`)
)

2 - フォーラム_コメント

CREATE TABLE IF NOT EXISTS `forum_comments` (
  `comment_id` int(11) NOT NULL AUTO_INCREMENT,
  `comment_by` int(11) NOT NULL,
  `topic_id` int(11) NOT NULL,
  `parent` int(11) NOT NULL DEFAULT '0',
  `comment` text NOT NULL,
  `commented_date` datetime NOT NULL,
  `commented_type` enum('user','admin') NOT NULL DEFAULT 'user',
  `status` enum('publish','unpublish','block') NOT NULL,
  PRIMARY KEY (`comment_id`)

)

4

3 に答える 3

0

このようなモデル関数をクエリで使用できます

function getComments($topic_id){
    $query  =   "   SELECT
                        fc.*
                    FROM forum_topic AS ft
                    INNER JOIN forum_comments AS fc ON ft.topic_id  =   fc.topic_id
                    WHERE ft.topic_id   =   $topic_id
                    ORDER BY fc.parent";
    return $this->db->query($query)->result();
}
于 2013-03-13T06:55:29.773 に答える
0

このクエリを試して、機能するかどうかを確認できます。

Select top.*,com.* from forum_topic as top left join forum_comments as com on com.topic_id = top.topic_id where top.topic_id = 1 order by top.topic_id desc
于 2013-03-13T06:57:32.020 に答える
0

多数のループまたは結合に対する効率を求めている場合は、「forum_comments」テーブルに「左右のツリー」形式を使用するとよいでしょう。

http://www.sitepoint.com/hierarchical-data-database-2/

http://en.wikipedia.org/wiki/Nested_set_model

于 2013-03-13T06:45:29.077 に答える