0

mongodb と mongomapper を使用して、daat を保存する最善の方法を見つけようとしています。

私にはカテゴリがあり、各カテゴリは多くの属性で説明できるため、長さ (mm)、重さ (kg) などがあります。

各ユーザーが独自の属性を作成して、製品のカテゴリを記述できるようにしたいと考えています。

たとえば、次のようになります。

ユーザー A は、自分のカテゴリ「車」を車輪の数と車の長さ (mm) で保存したいと考えています。ユーザー B は、自分のカテゴリ「車」と車輪の数と長さ (mm) と重量 (kg) を保存したいと考えています。

カテゴリは誰にとっても同じですが、属性は異なる場合があります。

これをカテゴリ コレクションとして保存する必要があります。各カテゴリには、属性 anmes と units のハッシュを含むユーザーの配列が含まれますか?

または、これを何らかの形で複数のコレクションに分割する必要がありますか?

または、誰もが考えることができるより良い方法はありますか?

深いネスティングの問題ですか?

助けとアドバイスをくれてありがとう。リック

4

1 に答える 1

0

簡単な答えから始めましょう。項目ドキュメントに属性をフィールドとして保存します。これが、スキーマのないデータ ストアを使用する理由です。

さて、どの魔女の属性をどのアイテムにつけるか。簡単な答え:あなたが説明した方法はどれも機能します。いずれも、効率の面でいくつかのトレードオフがあります。

あなたのモデルは次のようになると思います:

  • コレクションユーザーあり
  • カテゴリと呼ばれる項目の集まりがたくさんあります
  • 各アイテムはカテゴリのメンバーです
  • 各ユーザーは多くのアイテムを持っています
  • カテゴリ内のすべてのアイテムには、ユーザーに応じて多くの潜在的な属性があります
  • 一部のユーザーは属性を共有します

次のコレクションがあります:ユーザー、*カテゴリ(車、ボート、家など)、属性。

属性コレクションには、カテゴリ (車など)、そのカテゴリ内のアイテムの属性 (燃費など)、およびその属性を使用する user_id のリストがリストされます。

于 2011-03-07T17:09:49.797 に答える