0

私は MySQL データベースの構造を開発していますが、その構造に関する小さな決定上の問題に直面しました。

私は2つのテーブルを持っています:

  1. サイトに公開されたすべてのメッセージ。
  2. サイトに公開されたすべてのコメント。

すべてのメッセージには、複数のコメントを関連付けることができます。メッセージとそれに関連するコメントを関連付けるより良い方法は何ですか?

  1. 関連するメッセージの ID を含むコメント用のフィールドを用意します。
  2. 関連するコメントの ID の配列を json 形式で含むメッセージ用のフィールドを用意します。

通常、最初の方法が使用され、次に MySQL クエリが使用されて、対応するメッセージの message_id を持つコメントが検索されると思います。しかし、何十万ものコメントがある場合、どれほど効率的でしょうか?

この場合、json 文字列をデコードし、正確な一意の ID でコメントにアクセスすると、より効率的かつ高速になりますか?

それが重要な場合、バックエンドにpythonを使用しています。

4

1 に答える 1

1

コメント テーブルに必ずメッセージ ID フィールドを追加する必要があります。そのフィールドにインデックスを追加すると、パフォーマンスの問題は発生しません。

このソリューションは、データベースの正規化を妨げるものではなく、論理的で保守が容易です。たとえば、配列を 1 つのフィールドに格納すると正規化壊れ、複数の問題が発生します。

于 2013-05-20T11:44:33.853 に答える