我了解基本的数据库关系如何工作,但是我对RDBM中的以下/后续社交媒体关系感到困惑。
用户表:
userId (PK)
email
name
关注表:
followerId (FK referencing userId),
followeeId (FK referencing userId)
这似乎是正确的数据库设计,但是我真的想知道这是一对多还是多对多关系。
我认为这是很多对很多的事情,因为一个用户可以关注很多用户,并且可以被很多用户关注。但这可能是一对多的,因为用户进行的每个关注都包含一个要关注的userId。这不是完美的例子,例如学生和班级,这让我感到困惑。谢谢。
答案 0 :(得分:1)
在我看来,您的数据库设计与您的用例保持一致。
您在用户之间具有多对多关系,其中用户可以:
为表示这种关系,您创建了一个 bridge表,即follow
表。这是进行操作的相关方法。
与典型的Student / Class关系的不同之处在于,两个相关的对象都存储在同一张表(users
)中:这就是为什么您在{{1}中使用两个外键的原因}表引用了follow
。但是,不管这种特殊性,从概念上讲,这是相同类型的关系。