Cassandra多对多关系建模选项
在这篇文章中,作者举例说明了在Cassandra中建模多对多关系的几个选项。我想就其中两项作进一步澄清:Cassandra多对多关系建模选项,cassandra,many-to-many,cql,composite-key,nosql,Cassandra,Many To Many,Cql,Composite Key,Nosql,在这篇文章中,作者举例说明了在Cassandra中建模多对多关系的几个选项。我想就其中两项作进一步澄清: 为什么选项4会占用更多空间?似乎您只是将用户的项目添加到列空间中 另外,在选项4中,如何按照作者的建议定义复合列?你似乎有两组栏:1)姓名、电子邮件和2)喜欢,而后者是宽(?)。为用户表定义姓名、电子邮件和宽列的CQL代码是什么 谢谢 以下图片取自上述文章: 就第一个问题而言,在我看来,每个用户只占用一行空间,每个项目占用的空间更少,因为您将所有内容都保留在一行中 至于第二个问题,您可以查
就第一个问题而言,在我看来,每个用户只占用一行空间,每个项目占用的空间更少,因为您将所有内容都保留在一行中 至于第二个问题,您可以查看
静态列
(这里是)。基本上,这是一种定义列的方法,该列将由一行中的所有值共享(用户表中的用户详细信息和项目表中的项目详细信息),并且您只能通过使用分区键来更新值
第二个解决方案可以是将用户喜欢的项目建模为
映射类型(这里是),同样的事情也可以建模到项目(创建喜欢该项目的用户的映射)。我建议您获取有关Cassandra中数据建模的更多信息。我已经阅读并将其视为本案例中的有用文章。它们将帮助您了解基于您的查询(查询驱动的方法)和数据复制及其优缺点对表进行建模