我们正在构建一个图数据库,我们想知道如何对图结构建模。这个想法是让用户可以与几件事相关( friend 、博客中的帖子等)。我们怀疑是否有这样的中间节点更好:
User1 -+-> Friends -+-> User2
| |
| +-> User3
|
+-> Posts -+-> Post1
|
+-> Post2
或者,如果您直接将用户与其拥有的元素联系起来,如下所示:
User1 -+-> User2
|
+-> User3
|
+-> Post1
|
+-> Post2
我们看到了这两种风格的好处和问题。如果我们能听到具有更多使用社交图的经验的人的意见,那将是很棒的。
最佳答案
首先想到的是,如果您有许多(数千个或更多)不同类型的关系,您将遇到一个节点加载关系的当前问题(如果它尚未加载到缓存中)即使您只想获得特定类型的某些关系,也必须加载所有内容。我认为这个加载问题很快就会得到解决。
您要记住的另一件事是, friend 可能不会很多,尽管帖子会并且所有帖子都直接连接到用户也会让您在帖子数量增加时遇到排序问题。这就是为什么我建议您将帖子放在用户的链接列表中,最新的放在最前面。这将使它们按日期自然排序,例如:
User -+-> Post3 --> Post2 --> Post1 | +-> User2 | --> User1
关于nosql - 如何组织图数据库中的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10278811/