需要帮助来了解他的数据库关系

时间:2012-03-21 01:14:10

标签: mysql sql relational-database

我有2个表,用户和关注者。

用户表。 (UserId,UserName)

关注者表(Id,UserId,FollowerId)(2个外键,UserId和FollowerId都引用User表中的UserId)

User.UserId和Follower.FollowerId,我认为这是一对多,一个用户可以有很多粉丝。

User.UserId和Follower.UserId是一对一还是一对多。我觉得我很困惑。

修改

这是多对多的关系。我命名的方式使我感到困惑。

用户表保持不变,关注者表更改为(Id,Leader,Follower)

现在很清楚,一个领导者可以有很多粉丝,一个粉丝可以跟随很多领导者。

2 个答案:

答案 0 :(得分:2)

我认为你的命名让你感到困惑。不要为实体和角色使用相同的名称。你真正拥有的是一张Person表和另一张表示人与人之间关系的表;也许称之为连接表。

通过这种方法,很明显一个人可以在连接中扮演任何角色,并且所描述的所有关系都是多对多的。

答案 1 :(得分:0)

从表格的角度看它,它是一对多的。所以在实现中让我们说表User中的用户A可能在表Follower中有用户B,C和D行,因此一对多。