私はMySQL
の背景から来て、MongoDB
の周りを頭で囲んでいます。特に、私はどのようにモデル化すべきかを概念化するのに苦労しているn:n
関係は、 "モンゴーの方法"。MongoDB(MySQLユーザーの場合)で多対多の関係をモデル化する方法
この例では、2つのcollections
:users
とinterests
が2つあるとします。我々は、我々のデータで表現するか、いくつかのクエリできるようにする必要があります:
- 興味のあるユーザの関心
- ユーザーの評価、例えば「のような」または
MySQL
に興味 - インタレスト名
の各評価の特定の興味を持つ
users_interests
テーブルを作成しました。カウンターについては、各格付けタイプごとに別々の列を用意しておき、ユーザーが関心を評価する/評価を解除するたびに、カウントが決して偽でないことを保証するトランザクションを実行しました。 私はreading about some schema designsを試しましたが、役に立たないです。
紛失した魂を助けることができますか?
IDを保存する理由興味の名前を変更することはまずありませんが、参照を保持していますか?また、好きな名前を表示するには '$ in'を実行する必要があります。 – mnemosyn
@mnemosyn通常、次の2つのシナリオのいずれかを持つコードパス:1:あなたは、どのユーザーが持っているかを知りたい、または2:ユーザーがどのような関心事を持っているかを見たい。最初のものではすでに名前があり、文字列ではなくID(高速クエリ)でクエリを実行するだけです。 2番目には、IDのリストがあり、オブジェクトIDを再度照会しています。また、興味の名前を変更する場合は、必要なのは、興味のコレクションの特定の関心のref idですので、すべてのユーザーエントリを更新するためにリファクタリングする必要はありません。お役に立てれば! – Petrogad
@mnemosyn "釣り"から "釣り"など何かを大文字にすることを決めるとどうなりますか? – ceejayoz