使用Cassandra CQL收集嵌入对象

时间:2013-05-16 08:55:09

标签: cassandra cql cql3

我正在尝试使用CQL将我的域模型放入Cassandra。我们说我有USER_FAVOURITES表。每个收藏夹都有ID作为PRIMARY KEY。我想存储多个字段的最多10条记录的列表,field_name,field_location等按顺序

对这样的表进行建模是个好主意吗

CREATE TABLE USER_FAVOURITES (
    fav_id text PRIMARY KEY,
      field_name_list list<text>,
      field_location_list list<text>
);

对象将从匹配标记的列表项构建(例如

Object(field_name_list[3],field_location_list[3]))

我总是一起查询收藏夹。我可能想要添加和项目到某个位置,开始,结束或中间。

这是一个好习惯吗?看起来不像,但我不确定如何在这种情况下对对象进行分组,当我想按顺序保持它们时,例如,field_location或更复杂的排序规则 < / p>

2 个答案:

答案 0 :(得分:0)

我建议使用以下结构:

CREATE TABLE USER_FAVOURITES (
    fav_id text PRIMARY KEY,
    favs map<int, blob>
);

这将允许您通过索引访问任何项目。 map的值部分是blob,因为可以很容易地将整个所需对象序列化为二进制并稍后反序列化。

答案 1 :(得分:-1)

我个人的建议是不要过分强调cassandra收集,因为它将来会进一步绽放。虽然上述情况非常可行,但这样做没有任何危害。