如何在rdbms中表示自我与自我的关系?

时间:2009-09-15 22:36:52

标签: rdbms

希望这是一个愚蠢的问题,但我的大脑已经炒了,我现在想不出怎么做。

我正在努力建立一个社交网络,并需要跟踪一个人的“粉丝”。我已经制作了一个用户表,但是我如何表示用户彼此关联的想法? 这是一种单向关系,所以如果一个人“喜欢”一个人b,反过来不一定是真的。

我唯一能想到的是一张只有一对一关系列表的表,所以:

user a -> user b  
user a -> user c  
user a -> user d  
user b -> user d  
user b -> user c  
...  

但这似乎不适合我。

由于

西蒙

编辑:也许twitter上的关注者更类似于我正在尝试做的事情

2 个答案:

答案 0 :(得分:1)

创建一个只包含跟随者ID信息的表:

user_id | follower_id

那应该是它。例如,用户#56。

他可能在关注者表中有这样的行:

56 | 53453
56 | 323
56 | 463

只需在两列上添加一个唯一约束,这样他就不会与他人交朋友两次。

答案 1 :(得分:0)

也许是一张表格如下:

RelationshipId    Follower Target
Int               Int      Int

其中Follower是UserA的Id,而Target是UserB的Id,UserA跟随UserB。