如果我想创建一个允许用户拥有0个或更多“ friend ”的网站,我该如何在数据库中建立这种关系的模型?这个简单的工作会做些什么:
Table Friends
- Id (PK)
- UserId (FK)
- FriendId (FK)
???
这是否可以让我以后做类似Facebook的事情(例如“您的3个 friend 认识此用户,也许您也知道”)?还是像6度到凯文培根的东西?
编辑1:
Table Friends
- UserId (FK)
- FriendId (FK)
- Status ('Pending', 'Approved', 'Rejected', 'Blocked'?)
最佳答案
这将起作用。以下是要注意的要点:
每次您需要查询DOR(关系度)时,都必须初始化图并运行最短路径算法(这是我能想到的最优化方法)。如果您的成员(member)数量增加到几公斤,那么您将如何处理呢?
关于mysql - 社交网络的数据模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4177163/