【发布时间】:2016-08-13 09:51:41
【问题描述】:
我正在 Cassandra 中设计一个键空间,用于保存有关用户组的信息。关于它的一些信息:
- 只有通过请求特定组中包含哪些用户并更新组中包含的用户才能访问此数据。
- 读取将比写入频繁得多。
- 每个组最多可包含 20,000 个用户 ID
为此,我正在考虑两种设计。
- 每组多行:该表将有两列 TEXT 类型,并以主键(GroupID,UserID)为键,读取组中的用户将由
select * from table where GroupID = {GroupID}完成,并将返回与那里一样多的行是组中的用户。 - 使用 Cassandra 集合集合的每组一行:该表将有两列,第一列 (GroupID) 为 TEXT 类型,第二列 (UserID) 为 SET[TEXT] 类型,并以 Pimary Key (GroupID) 为键。读取群组中的用户将由
select * from table where GroupID = {GroupID}完成,并将返回一行,其中包含在其 UserIDs 列集中的一组用户 ID。
我找不到很多关于这种场景的更好设计的文档。对这两种情况有什么想法或优缺点?
【问题讨论】:
标签: collections cassandra schema cql