考慮需要在Cassandra數據存儲中表示的M:M關係。在Cassandra中建立M:M關係的替代方法是什麼?
什麼M:M建模選項可用?對於每個替代品,它何時更喜歡?您在Cassandra動力項目中做了哪些M:M建模選擇?
考慮需要在Cassandra數據存儲中表示的M:M關係。在Cassandra中建立M:M關係的替代方法是什麼?
什麼M:M建模選項可用?對於每個替代品,它何時更喜歡?您在Cassandra動力項目中做了哪些M:M建模選擇?
而不是像你使用rdbms一樣使用連接表,你將有一個ColumnFamily包含每個X的行和一個與它關聯的Y的列表,然後一個CF包含每個Y的一行和一個列表與它關聯的每個X.
如果事實證明你並不真正關心查詢其中一個方向,那麼只保留你關心的CF。
Cassandra的設計是Key value數據庫,所以要實現M:M有兩種方法可以做到這一點。
對您的數據進行反規範化處理,以便每個關係船都應該複製數據。
即。 X-> Y(值)和X-> Z(值)和A-> Y(值)
Ÿ應保存的X和一個
這是它應該怎麼做,因爲它是給你數據庫的強度
將關係密鑰的引用保存爲值。
X-> Y(鍵),X-> Z(密鑰)和A-> Y(密鑰)
所以如果你需要X與Y的值應該是兩種操作,獲得X這將給你y的價值。然後讓y本身進行單獨的操作。
Cassandra不是RDBMS,所以不要用傳統的方法來放棄值並定義關係。