【发布时间】:2014-12-21 18:52:27
【问题描述】:
用 CQL3 建模多对多关系的规范方法是什么? 假设我必须表格
CREATE TABLE actor (
id text PRIMARY KEY,
given text,
surname text,
)
CREATE TABLE fan (
id text PRIMARY KEY,
given text,
surname text,
)
我想模拟一个演员可以有很多粉丝并且每个粉丝可以喜欢很多演员的事实。
我想到的第一个想法是使用sets,如下所示(对于粉丝来说则相反):
CREATE TABLE actor (
id text PRIMARY KEY,
given text,
surname text,
fans set<text>
)
<similarly for fan>
但它们似乎是为小型场景设计的,我没有办法在不完全加载任何场景的情况下检查粉丝是否与演员相关。
我发现的第二个选择是制作两个映射表,每个映射表用于每个关系方向:
CREATE TABLE actor_fan (
text actor,
text fan,
PRIMARY KEY(actor,fan)
);
<similarly for fan_actor>
这是否让我能够获取演员的粉丝列表并检查特定人是否是给定演员的粉丝? 有很多关于 Cassandra 的文档,但它通常与旧版本相关,并且版本之间似乎存在很多差异。
【问题讨论】:
标签: database cassandra-2.0 cql3