Cassandra如何使用有序列来改变表格?

时间:2016-05-30 05:50:21

标签: cassandra

我正在尝试建模一个内容表,其中包含按时间戳排序的时间戳。但是,如果用户决定编辑内容,我希望更改时间戳(以便内容重新出现在列表的顶部)。

我知道您无法更改主键列,因此我不知道会如何构建这样的内容。下面是一个示例表。

CREATE TABLE content(
id uuid
category text
last_update_time timestamp
PRIMARY KEY((category, id),last_update_time)) WITH CLUSTERING ORDER BY (last_update_time);

如果我希望数据按可以更改的列排序,我应该如何建模此表?

1 个答案:

答案 0 :(得分:-1)

2个解决方案

1)如果您不关心更新历史记录

CREATE TABLE content(
id uuid
category text
last_update_time timestamp
PRIMARY KEY((category, id))

// Retrieve last update
SELECT * FROM content WHERE category = 'xxx' AND id = yyy;

2)如果您想保留更新历史记录

CREATE TABLE content(
id uuid
category text
last_update_time timestamp
PRIMARY KEY((category, id),last_update_time)) WITH CLUSTERING ORDER BY (last_update_time DESC);

// Retrieve last update
SELECT * FROM content WHERE category = 'xxx' AND id = yyy LIMIT 1;