Facebook 的实体关系图

Entity relational Diagram for Facebook

我很想知道实体关系图如何查找 Facebook。我有点困惑,因为朋友和用户之间存在重叠,这会导致数据库中出现重复的数据条目。

一个用户可以发一个post,可以有很多好友

然而,

朋友也可以做一个post,拥有自己的朋友

您将如何为 facebook 等社交媒体应用程序设计架构?

谢谢!

我会想象一些类似的东西;

    User table - user details
    Post table - owned by a user
    Friends table - a table that stores the link between people. 

一个user可以创建多个post
一个user可以有很多friends。首先,这个关系是 user 上的 many-to-many 关系。然后我们可以将它映射为一个新的实体,并将其命名为 friends,其中两个 F.K 来自 user。比如可以保存user1和user2是朋友

A friend 也是 user。所以 he/she(作为 user)也可以创建 post

UML 表示法中的 ER 可以如下所示:

请注意,此 ER 显示用户 1 是用户 2 的朋友(反之亦然)。但是从友谊的意义来看,我们可以得出user2也是user1的朋友。

另外,好友关系是用户之间的图形关系。在ER上面的普通项目中还是不错的。但在大型真实项目中,您可以使用 Graph Databases like neo4j.