1

DB (Redis) 車、そのメーカー、モデル、世代を次の要件とともに保存する必要があります。

  • 正確なメーカー、メーカーとモデル、またはメーカー、モデルと世代のすべての車を取得できる必要があります (たとえば、すべての BMW - M3 - E30、またはすべての BMW -M3 など)。

  • 上位 X の BMW または上位 X の BMW E30 を取得できるように、車の評価を保存する必要があります...

いくつかの構造を設計しましたが、大きすぎるようです。車、メーカー、モデル、世代の 4 つのオブジェクト タイプがあります。それらはツリー構造でグループ化されています。ツリーの一番上(ルート)がmake、その下がモデル、次世代、一番下が車です。したがって、makes、models、および generations には、それぞれモデル、世代、および車を含むソートされたセットがあり、cars、generation、および models には、それぞれ世代、モデル、およびメーカーを指す単純な文字列値があります。

さらに、メーカーとモデルには、独自の並べ替えられた車のセットがあります。

これについてどう思いますか?メーカー、モデル、世代を単一のオブジェクトに結合したいのですが、今はどうすればいいですか。

4

1 に答える 1

0

私はあなたのベースオブジェクトを車にします。これは、Make、Model、Generation、Rating、およびその他の必要なフィールドを使用してハッシュとしてモデル化できます。次に、メーカーごとに、たとえばmake:BMW => {car_id, car_id, car_id}、スコアが評価と等しい、ソートされたセットを用意します。同様に、モデルと世代を並べ替えたセットを、評価順に並べます。次に、zunionstore / zinterstoreを使用して、必要なプロパティの正確なセットを指定し、評価によって結果からデータを取得できます。これにより、クエリする新しいファセットを簡単に追加できます。たとえば、色のzsetの新しいコレクションを作成し、それを同じユニオン/交差エンジンに投げ込むことができます。

于 2012-10-02T16:14:02.940 に答える