gpt4 book ai didi

mysql - 社交网络的数据模型?

转载 作者:可可西里 更新时间:2023-11-01 06:33:50 26 4
gpt4 key购买 nike

如果我想创建一个允许用户拥有 0 个或更多“ friend ”的站点,我将如何在数据库中对这种关系建模?这个简单的东西会起作用吗:

Table Friends
- Id (PK)
- UserId (FK)
- FriendId (FK)

???

这是否允许我以后做一些像 Facebook 那样的事情(例如“你的 3 个 friend 认识这个用户,也许你也认识”)?或者类似 6 度到 Kevin-Bacon?

编辑 1:

Table Friends
- UserId (FK)
- FriendId (FK)
- Status ('Pending', 'Approved', 'Rejected', 'Blocked'?)

最佳答案

这会起作用。需要注意以下几点:

  • 你有 friend 确认之类的东西吗?如果是,您将不得不考虑如何存储“待定”
  • 索引 UserId 和 FriendId。这些是您加入表格所依据的值(value)观。
  • 无序对 (UserId, FriendId) 是主键的竞争者。
  • 假设 Uid_1 和 Fid_1 是 friend ,其中 Uid_1 != Fid_1 那么您的 Friends Table 存储 (Fid_1, Uid_1) 以及 (Uid_1, Fid_1)。
  • 您要搜索多远的关系。

每次你必须查询 DOR(关系度)时,你都必须初始化一个图并运行最短路径算法(这是我能想到的最简单的优化)。如果您的成员(member)人数增加到几公斤,那么您将如何处理?

关于mysql - 社交网络的数据模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4177163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com