0

我目前在 Cassandra 中有一个用户表。

我想创建一个朋友关系表,但我不确定最好的方法是什么。首先,我想把like key作为当前用户,把column作为朋友,但我想实现发送朋友请求的功能,所以我认为应该有另一个名为accepted的对象来处理两个人是不是真正的朋友,或者不是其他人是否接受了好友请求。我认为这将是多对多表。例如在友谊关系中。

Friendship: {
John Dow: {
10: Mark Seldon,
8: Julian Hendrix,
...
},
Mark Seldon: {
9: John Dow,
...
},
...
}

任何方向表示赞赏。

4

1 回答 1

0

这似乎可以通过创建一个新表“friends”来实现,您可以(例如)在 CQL 中使用“复合键”{userid,friendid}:

CREATE TABLE friends(    
userid varchar,
friendid varchar,
PRIMARY KEY (userid, friendid)
);

这将定义两个用户(在用户表中都有一个条目)之间的“友谊”关系......这将允许您查询几件事:

  • 获取“userid”的所有朋友
  • 检查用户 ID 和“用户 x”(具有给定的朋友 ID)是否存在

这也意味着无论何时存储关系,都需要在表中创建两个“条目”:{user1, user2} 和 {user2, user1}...

于 2013-08-19T12:01:56.480 回答