私はこれをできる限り簡単にしようとします。
MySQL から来て、テーブルの観点から考えて、次の例を使用しましょう。
不動産のウェブサイトを運営していて、家のリストを
通常どおり表示しているとします。次のテーブルを使用します。
- 家 - 手元にある不動産資産
- owner - 家の所有者 (家との 1 対多の関係)
- 代理店 - 不動産仲介業者 (住宅との多対多の関係)
- images - 家屋との多対一の関係
- レビュー - 家屋との多対一の関係
MongoDB は、リレーショナル データベース (正規化) によく似た一意の ID を持つさまざまなコレクションで Web アプリを設計する柔軟性を提供し、迅速な選択を楽しむために、コレクション、関連するオブジェクト、およびデータ (非正規化) 内にネストできることを理解しています)。
不動産住宅リストに戻ると、通常のリレーショナル DB では、データを入力するために使用されるクエリは非常にコストがかかります。住宅ごとに、その画像、レビュー、所有者、代理店をクエリする必要があり、各エンティティはフィールドを持つ異なるテーブルに存在します。 、おそらく結合を使用し、複数のクエリを1つに結合します-高価です!
MongoDB に入ります - ジョインを必要とせず、家に関連するすべてのデータを家のコレクションの家アイテムに保存できます。
しかし、関連するレビュー/代理店/所有者/画像を追加/更新/削除する必要がある場合はどうなりますか?
これは私にとって謎であり、推測する必要がある場合、関連する各コレクションは家のテーブル内のデータの上に独自のコレクションに存在し、これらの関連データの 1 つが追加/更新/削除されると、独自のコレクションと家のコレクションで更新する必要があります。この更新時に、更新されたすべての関連データでハウス レコードを更新していることを確認するために、他のコレクションにもクエリを実行する必要がありますか?
私はここで推測しているだけであり、あなたのフィードバックを本当に感謝しています.
ありがとう、
アジャール