我正在尝试建模一个内容表,其中包含按时间戳排序的时间戳。但是,如果用户决定编辑内容,我希望更改时间戳(以便内容重新出现在列表的顶部)。
我知道您无法更改主键列,因此我不知道会如何构建这样的内容。下面是一个示例表。
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);
如果我希望数据按可以更改的列排序,我应该如何建模此表?
答案 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;