假设所有人员记录均由 UUID 标识,所有组均由 UUID 标识。当你需要共同查询一个组中所有人的列表,以及一个人所属的所有组的列表时,你会创建什么数据模型。IE
create table membership (
person_uuid uuid,
group_uuid uuid,
joined bigint,
primary key (person_uuid, group_uuid));
上面将针对按人查询进行优化,下面将针对按组查询进行优化。
create table membership (
group_uuid uuid,
person_uuid uuid,
joined bigint,
primary key (group_uuid, person_uuid));
是否有一种简洁的处理方式,以便您可以优化查询person_uuid
而group_uuid
不必使用“允许过滤”,即:
select group_uuid from membership where person_uuid=?
select person_uuid from membership where group_uuid=? allow filtering
您是否只是继续存储两个数据副本以进行双向查询,尽管这存在原子性问题,对吗?