2017-10-16 20 views
0

mongoデータベースで埋め込みドキュメントを使用する時期と理由を理解するのに少し問題があります。矛盾した埋め込みドキュメントを回避する方法

ユーザー、ルーム、予約の3つのコレクションがあるとします。

inconsistent embed

私はこのような状況についていくつか質問があります。

1)どのように埋め込まれた文書を更新しますか? kevinのすべてのインスタンスを埋め込みドキュメントとして見つけて更新するのは、アプリケーション開発者の責任ですか?

2)解決策がドキュメント参照を使用する場合は、リレーショナルDB結合ほど重いですか?これはモンゴにとってはあまり適していない例のケースですか?

私が完全なばかであるかどうかはいつも知らせてください。

答えて

1

Imho、あなたはそれを上書きしました。あなたからの質問があれば、

  • 予約の場合、どのユーザーがどの部屋を予約していますか?
  • 特定のユーザーの場合、その詳細は何ですか?
  • 1部屋あたりのベッド数はいくつですか?私は部屋のユーザー

    { 
        _id: new ObjectId(), 
        username: "Kevin", 
        mobile:"12345678" 
    } 
    

    と予約概要で今すぐ予約

    { 
        _id: new ObjectId(), 
        date: new ISODate(), 
        user: "Kevin", 
        room: 1001 
    } 
    

    のために、あなたが持つことができるため

    { 
        _id: 1001, 
        beds: 2 
    } 
    

    ための次のモデルとなるだろう

単純にqですべての関連情報(「who」、「when」および「which」)ユースケースからの最初の質問に答えるためのオーバーヘッドがなく、uerying予約。予約詳細ビューでは、間違いなく2つのクエリを実行する必要がありますが、適切なインデックスを作成することで高速であり、テクノロジに応じて非同期的に実行することもできます。部屋番号をidとしてインデックスを保存しました。残りの質問に答える方法は明らかです。

あなたの元の質問ごとに:埋め込みはここでは必要ありません。

関連する問題