【发布时间】:2015-12-03 21:56:50
【问题描述】:
我必须设计一个网页,让组长可以邀请人们加入他/她的组。我的要求很简单。
如果已经联系过此人,则不要发送重复的电子邮件。
向组长显示按邀请日期升序排列的邀请列表。
看起来很简单。我创建了这张表。
CREATE TABLE invites (
email_address text,
invite_date timeuuid,
PRIMARY KEY (email_address, invite_date)
) WITH CLUSTERING ORDER BY (invite_date ASC);
问题 1:LWT 无法将邀请日期用作集群列。
我想我会使用 LWT 来确保 email_address 是唯一的,只是发现 IF NOT EXISTS 似乎只适用于 whole PRIMARY KEY,所以 C* 中的 LWT 对我不起作用.
问题 2:即使将邀请日期作为集群列,我也无法获得有序的邀请列表以挽救我的生命。
如果我取消邀请日期,我无法在 CQL 中发出“order by”。也就是说,将邀请日期排除在 PK 之外让我使用 LWT...
我什至无法获得一个 2 列的表来满足 2 个简单的要求!非常感谢任何有关此问题的数据建模设计的帮助。
2015 年 12 月 4 日新:
除了业务需求之外,我还有一个技术需求是: 我想确保我在 Cassandra 中正确建模,以便它允许我在 Java 驱动程序中使用 CQL 的 LIMIT 和 pagingState 功能。这意味着,我不能只读取所有行,在 Java 端排序并返回结果。
【问题讨论】:
标签: cassandra cassandra-2.0 cql3