我需要在Cassandra中为与其他用户共享项目的用户建模。
在关系数据库中,我使用交叉引用表对其进行建模,如下所示:
USER_SHARE
我需要查询才能找到:
1)给定用户,他们共享了哪些项目,以及与谁共享 2)给定用户,给定项目与给定用户共享 3)给定用户,他们与他们共享了哪些项目,以及由谁共享 4)给定一个项目,它是否与用户X共享
答案 0 :(得分:2)
在Cassandra中,你使用非规范化来做到这一点。 您应该创建items_by_users和users_by_items - 实际上,您必须为数据建模以回答所有查询。可能在插入数据时需要一个已记录的批处理,以保证所有表中写入的原子性
答案 1 :(得分:0)
你可以在Cassandra做同样的事情。但是,如果使用SQL,则无法强制执行完整性约束。