在linkedin,当您访问某人的个人资料时,您可以看到您与他们的联系方式。我相信linkedin显示了高达3级的连接,如果不是更多的话,比如
shabda -> Foo 用户、bar 用户、baz 用户 -> Joel 的连接 -> Joel
我怎样才能在数据库中表示这个。
如果我建模为,
用户 身份PK 姓名字符 联系 用户 1 FK 用户 2 FK
然后要找到网络,三层深,我需要获取我所有的连接,他们的连接,以及他们的连接,然后查看当前用户是否在那里。这显然对于任何大小的数据库都是非常低效的,并且可能也很笨重。
因为,在链接时我可以看到这个网络,在我访问的任何个人资料上,我认为这也不是预先计算的。
我想到的另一件事可能是最好不要将其存储在关系数据库中,但是存储和检索它的最佳方法是什么?