MongoDB 用の Mongoid ORM を使用して、新しい Rails 3 プロジェクトを開始したところです。1 つだけ理解できないことがあります。それは、多対多の関係を効果的に構築する方法です。この問題へのアプローチが間違っている可能性は十分にありますが、私の知る限り、私のプロジェクトには多対多の関係を必要とするコンテナが少なくとも 2 つあります。両方のモデルを「ファーストクラス」モデルとして扱い、それぞれに独自のコンテナーを割り当てることをお勧めします。
これは、多対多の関係を構築するために考えることができる最も簡単な方法です。
// Javascript pseudo modeling
// -------------------- Apps
{
app: {
_id: "app1",
name: "A",
event_ids: ["event1","event2"]
}
}
{
app: {
_id: "app2",
name: "B",
event_ids: ["event1"]
}
}
// -------------------- Events
{
event: {
_id: "event1",
name: "Event 1",
}
}
{
event: {
_id: "event2",
name: "Event 2",
}
}
私が知る限り、これは多対多の関係を推測するために必要な最小限の情報です。どのアプリがイベントに属しているかを判断するには、map reduce 手順が必要になる可能性があると思います。また、イベント モデルにアプリが追加または削除された場合に App.event_ids を更新するために、Event に post commit/save フックを記述する必要があります。
私はここで正しい軌道に乗っていますか?多対多の関係が機能している Mongoid または Mongomapper のコード例を誰かが持っている場合は、共有していただけますか。