6

1 つの投稿に多くのコメントがあり、コメントが基本的に投稿と同じである場合 (例: タイトル、写真、音声など)、テーブルを 2 つ作成する必要がありますか?それとも 1 つだけ作成する必要がありますか?

たとえば、テーブルを 1 つしか使用しない場合は、parent_id 列を使用できるため、返信でない場合は null になり、それ以外の場合は親投稿の ID になります。一方、投稿テーブルとコメント テーブルを作成できます。コメントは他のコメントに返信することもできるため、すぐに混乱する可能性があります。

  *Post*
    id
    title
    content
    image
    audio
    parent_id

また、

*Post*                        *Comments*
id                             id
title                          title
content                        content
image                          author_id 
audio                          post_id
author_id                      image
                               audio

2 番目のオプションで許可されるのは、インデックスの作成です。実際、最初からインデックスを使用すれば、author_id や post_id を追加する必要さえありません。

このSOについてどう思いますか?どちらがより効率的でしょうか? これにはredbeanphpを使用することを考えています。

4

2 に答える 2

2

2 番目のオプションの方が適切です。掲示板を表示する場合、コメントは気にせず、インデックス付きの親投稿 ID 列で検索すると高速です。投稿とコメントは異なるフィールドを持つ可能性が高いため、別々にしておくのが正しいです。最初のオプションの親 ID インデックスは問題なく機能しますが、概念的には面倒です。基本的に、投稿に関連する半分または多くのコメントで使用するインデックスを作成しています。

于 2012-08-28T02:24:06.283 に答える
1

の原則として: テーブルはエンティティと呼ばれるため、アプリケーション内の各エンティティはテーブルごとに分けて表示する必要があります。ここで、投稿とコメントはそれぞれ同じ種類のデータを持っていると見なしましたが、最終的にはそれぞれが別のエンティティであるため、2 つのテーブルに分ける必要があります。この動作は個人的な意見ではありません。アプリ開発をよりスムーズに進めるための基本ルールです。

于 2014-03-28T04:34:42.483 に答える