【发布时间】:2015-01-03 04:23:59
【问题描述】:
我的模型看起来像
StateChange:
row_id
group_name
timestamp
user_id
我的目标查询如下:
查询 1 = 使用 row_id = X ORDER BY Timestamp DESC 查找所有状态更改 查询 2 = 使用 row_id = X 和 group_name = Y ORDER BY Timestamp DESC 查找所有状态更改
使用我有限的 CQL 知识,这样做的唯一方法是为上述每个查询创建 2 个查询表
查询1:
CREATE TABLE state_change (
row_id int,
user_id int,
group_name text,
timestamp timestamp,
PRIMARY KEY (row_id, timestamp)
)
查询2:
CREATE TABLE state_change_by_group_name (
row_id int,
user_id int,
group_name text,
timestamp timestamp,
PRIMARY KEY ((row_id, group_name), timestamp)
)
这确实解决了问题,但我现在在 Cassandra 中复制了数据。
注意:在表上创建 group_name 索引是可行的,但我不能再按时间戳排序,因为它现在是二级索引。
寻找只需要一张桌子的解决方案。
【问题讨论】:
标签: database cassandra data-modeling cql