卡桑德拉列表集合上的模型分页

问题描述

让我说我有一个表格pagelabels,它跟踪由用户使用标签标记页面-

我的桌子如下-

CREATE TABLE pagelabels (
    pageid text PRIMARY KEY,label list<string> // A list of label on this pageid
)

我想最初在用户页面显示用户10标签,该标签按打开页面时的插入时间排序。当用户通过单击“加载更多标签”来请求更多标签时,我应该在此页面上返回下一个10个标签。我如何支持这种分页方案?在这种情况下,我应该考虑更改数据模型吗?

解决方法

使用当前数据模型无法获得所需的结果。对于当前的数据模型,如果使用pageId进行查询,则所有标签将立即返回,因为它们在单个列表中。也没有规定按插入时间排序。 更好的数据模型可能是

CREATE TABLE pagelabels (
pageid text,insertion_time timestamp,label string,label_attribute1 string,PRIMARY KEY (pageid,insertion_time,label));

使用该数据模型并使用驱动程序中的分页(例如,请参见此处的Datastax Java Driver