0

ブログに多数の投稿を含めることができ、投稿に多数のコメントを含めることができる典型的なブログ アプリケーションを考えてみましょう。それにアクセスするための RESTfull API を提供したいとします。

リレーショナル データベースを使用してこのデータを格納する場合、posts テーブルにはブログへの外部キーがあり、comments テーブルには投稿への外部キーがあります。

Mongoose 経由で MongoDB を使用する場合、コレクションを設計する 3 つの異なる方法があります。

  1. 3 つのコレクションを用意します。1 つはブログ用、もう 1 つは投稿用、もう 1 つはコメント用です。投稿のスキーマにはブログを参照するフィールドがあり、コメントのスキーマには投稿を参照するフィールドがあります。(リレーショナル ソリューションと非常によく似ています。)

  2. 繰り返しますが、3 つのコレクションですが、各ブログには投稿への参照の配列があり、各投稿にはコメントへの参照の配列があります。

  3. ブログには投稿の配列が含まれ、各投稿にはコメントの配列が含まれる、サブドキュメントとサブサブドキュメントを含む 1 つのコレクションのみ。

どちらが正しいですか、それぞれの長所と短所は何ですか?

4

1 に答える 1