在this文章中,作者阐述了在Cassandra中建立多对多关系的几种选择。我想对其中两个做一些澄清:
感谢。
以下图片来自上述文章:
答案 0 :(得分:2)
就第一个问题而言,在我看来,每个用户和每个项目只占用一行空间,因为您将所有内容保存在一行中。
关于第二个问题,您可以查看static columns
(此处为cql documentation)。基本上,它是一种定义列的方法,该列将由一行中的所有值共享(用户表中的用户详细信息和项目表中的项详细信息),并且您只能使用partitioning key
更新值。
第二个解决方案可以是将用户喜欢的项目建模为map type
(此处为map documentation),同样的内容转到项目(创建喜欢该项目的用户地图)。
答案 1 :(得分:0)
我建议您在Cassandra中获取有关数据建模的更多信息。在这种情况下,我已将A Big Data Modeling Methodology for Apache Cassandra和Basic Rules of Cassandra Data Modeling视为有用的文章。它们将帮助您了解基于查询(查询驱动方法)和数据复制及其优缺点的表格建模。