我目前在Cassandra有一个用户表。
我想创建一个朋友关系表,但我不确定最好的方法是什么。 首先,我认为把关键作为当前用户和列作为朋友,但我想实现发送朋友请求的功能,所以我认为应该有另一个被称为接受的对象,负责两个人是否是真正的朋友或收集其他人接受了朋友的请求。 我认为这将是多对多的表。例如,在友谊关系中。
Friendship: {
John Dow: {
10: Mark Seldon,
8: Julian Hendrix,
...
},
Mark Seldon: {
9: John Dow,
...
},
...
}
感谢任何指示。
答案 0 :(得分:0)
这似乎可以通过创建一个新表“friends”来实现,你可以(例如)在CQL中使用“复合键”{userid,friendid}:
CREATE TABLE friends(
userid varchar,
friendid varchar,
PRIMARY KEY (userid, friendid)
);
这将定义两个用户之间的“友谊”关系(两者都带有Users表中的条目)...这将允许您查询几件事:
这也意味着无论何时存储关系,您都需要在表中创建两个“条目”:{user1,user2}和{user2,user1} ......