16

Cassandraデータストアで表す必要があるM:M関係について考えてみます。

どのようなM:Mモデリングオプションが利用できますか?それぞれの選択肢について、いつそれを好むのですか?Cassandraを利用したプロジェクトでM:Mモデリングをどのように選択しましたか?

4

2 に答える 2

16

rdbms の場合のように結合テーブルを使用する代わりに、各 X の行とそれに関連付けられた Y のリストを含む 1 つの ColumnFamily を作成し、次に各 Y の行と関連付けられた各 X のリストを含む CF を作成します。それと。

これらの方向のいずれかを照会することにあまり関心がないことが判明した場合は、関心のある CF のみを保持してください。

于 2010-04-09T16:07:19.413 に答える
2

Cassandraは設計上キーバリューデータベースであるため、M:Mを実現するには2つの方法があります。

  1. データを非正規化して、すべてのリレーションシップがデータを複製するようにします。

    すなわち。x-> y(値)およびx-> z(値)およびa-> y(値)

    yはxとaのために保存する必要があります

    これはあなたにデータベースの強さを与えるのでそれが行われるべき方法です

  2. リレーショナルキーの参照を値として保存します。

    x-> y(キー)およびx-> z(キー)およびa-> y(キー)

    したがって、yの値を持つxが必要な場合は、2つの操作である必要があります。xを取得すると、yの値が得られます。次に、別の操作でy自体を取得します。

CassandraはRDBMSではないため、値を削除して関係を定義することで、従来の方法に頭を悩ませないでください。

于 2010-04-07T15:58:11.197 に答える