3

我们正在构建一个图形数据库,并且想知道如何对图形结构进行建模。这个想法是让用户可以与几件事相关(朋友、博客中的帖子等)。我们的疑问是拥有这样的中间节点是否更好:

User1 -+-> Friends -+-> User2
       |            |
       |            +-> User3
       |
       +-> Posts -+-> Post1
                  |
                  +-> Post2

或者,如果您将用户直接与他拥有的项目联系起来,如下所示:

User1 -+-> User2
       |
       +-> User3
       |
       +-> Post1
       |
       +-> Post2

我们看到了这两种风格的好处和问题。我们很高兴听到有更多使用社交图谱经验的人的意见。

4

1 回答 1

2

首先想到的是,如果您有许多(数千个或更多)不同类型的关系,您将遇到当前的问题,即为一个节点加载关系(如果它尚未加载到缓存中),所有节点都有即使您只想获取特定类型的某些关系,也可以加载。我认为这个加载问题很快就会得到解决。

您可以记住的另一件事是,朋友可能不是很多,尽管帖子会,并且所有帖子都直接连接到用户,当帖子数量增加时,您也会遇到排序问题。这就是为什么我建议您将帖子放在用户的链接列表中,最新的在前。这将使它们自然地按日期排序,例如:

用户 -+-> Post3 --> Post2 --> Post1
  |
  +-> 用户2
  |
  --> 用户 1
于 2012-04-23T10:58:02.353 回答