NoSQL 初心者
8 年間の Web 開発で、私は常にリレーショナル データベースを使用してきました。最近、ユーザーが独自のフォト ギャラリーを作成できるシンプルなマルチユーザー Web アプリに MongoDB を使い始めました。
私のドメイン
私のドメインは非常にシンプルで、「ユーザー」>「サイト」>「写真セット」>「写真」があります。
これらの文書をどのように保管するかを決定する方法について、私は苦労してきました。アプリケーションでは、「写真」の小さなコレクションだけが必要な場合もあれば、「セット」だけが必要な場合もありますが、常に「ユーザー」、場合によっては「サイト」に関する情報が必要です。
薄い対深い
現在、私は外部キーの独自の実装を使用して、複数の薄いドキュメントを保存しています。もちろん問題は、1 つのページをレンダリングするために Mongo を複数回呼び出す必要がある場合があることです。
質問
もちろん、これらの非効率性やキャッシュなどを回避する方法があると確信していますが、NoSQLer はこれらの問題にどのようにアプローチしますか。
- このように文書を関連付けるのは普通ですか?
- 潜在的に巨大で深いドキュメントを保存する方が良いでしょうか?
- 私は間違っていますか?実際には、異なるビュー用に複数のドキュメントを保存する必要がありますか?
- 異なるビュー用に複数のドキュメントを保存している場合、更新をどのように管理しますか?
- Mongoの「埋め込み」機能を使用するのが答えですか? それがこの問題を最も解決する方法ですか?