0

CQL を使用してドメイン モデルを Cassandra に入れようとしています。USER_FAVOURITES テーブルがあるとしましょう。それぞれのお気に入りは、ID を PRIMARY KEY として持っています。複数のフィールド、field_name、field_location などの最大 10 レコードのリストを順番に格納したい

このようなテーブルをモデル化するのは良い考えですか

CREATE TABLE USER_FAVOURITES (
    fav_id text PRIMARY KEY,
      field_name_list list<text>,
      field_location_list list<text>
);

オブジェクトは、一致するインデックスのリスト項目から構築されます (例:

Object(field_name_list[3],field_location_list[3]))

いつも一緒にお気に入りを検索します。ある位置、開始、終了、または中間に項目を追加したい場合があります。

これは良い習慣ですか?のようには見えませんが、この場合にオブジェクトをグループ化する方法がわかりません。また、たとえば、field_location またはより複雑な順序付けルールによって順序付けを維持したい場合も同様です。

4

2 に答える 2

0

次の構造を提案します。

CREATE TABLE USER_FAVOURITES (
    fav_id text PRIMARY KEY,
    favs map<int, blob>
);

これにより、インデックスを介して任意のアイテムにアクセスできます。map の値の部分は blob です。これは、必要なオブジェクト全体をバイナリに簡単にシリアル化し、後で逆シリアル化できるためです。

于 2013-10-30T13:02:21.140 に答える
-1

私の個人的な提案は、cassandra のコレクションをあまり強調しないことです。上記のシナリオは非常に可能性が高く、そうしても害はありません。

于 2013-05-16T09:14:10.647 に答える