使用cassandra cql收集嵌入式对象

x3naxklr  于 2021-06-15  发布在  Cassandra
关注(0)|答案(2)|浏览(404)

我正在尝试使用cql将我的域模型放到cassandra中。假设我有用户最喜爱的表。每个收藏夹都有id作为主键。我想按顺序存储最多10条记录的列表,包括多个字段、字段名称、字段位置等等。
这样做是个好主意吗

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]))

我总是在一起。我可能想添加和项目的一些位置,开始,结束或中间。
这是个好习惯吗?看起来不像,但我只是不知道在这种情况下如何对对象进行分组,也不知道如何通过字段位置或更复杂的排序规则来保持它们的有序

vfh0ocws

vfh0ocws1#

我建议采用以下结构:

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

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

carvr3hs

carvr3hs2#

我个人的建议是不要过分强调Cassandra的收藏,因为它在未来会进一步发展。虽然上述情况是非常可能的,这样做没有坏处。

相关问题