ArangoDB 数据库中 'graphs' 的数量

number of 'graphs' in a ArangoDB database

我正在探索 Arangodb,我不确定我是否正确理解了如何在 ArangoDb 中使用图形概念。

假设我正在为一个社交网络建模。我应该为整个社交网络创建一个图还是应该为每个人及其联系创建一个图? 我觉得我应该使用单个图表...但是是否存在与该选择相关的任何 performance/fonctionality 问题?

也许潜在的问题是:我应该将 arangodb 中的图形概念视为技术概念还是业务相关概念?

谢谢

你不应该使用每个人的图表。第一个快速答案是使用单个图表。

总的来说,我认为你应该把图的概念当成一个技术概念来看待。话虽如此,(数学)图经常非常自然地模拟业务产生的关系。因此,图数据库中的技术概念图可以很好地映射到业务逻辑。

社交网络是主要示例之一。这里的典型问题是 "find the friends of a user?"、"find the friends of the friends of a user?" 或 "what is the shortest path from person A to person B?"。图形数据库对于涉及先验未知路径长度的问题最有用,例如最短路径示例。

回到最初的问题:您应该首先查看您对数据的查询。然后你想做到这一点,以便这些查询可以方便地映射到你的数据存储可以回答的标准图形操作(或实际上其他查询)。然后这会告诉您什么样的信息应该在同一个图表中,哪些位属于不同的图表。

在您最初的社交网络用例中,我假设您想要 运行 涉及友谊关系链的查询,因此这些链中的边必须在同一个图中。但是,在更复杂的情况下,例如可以想象您有一个 "friendship" 图和一个 "follows" 图,它们都使用不同的边但使用相同的顶点。在那种情况下,您的社交网络可能有两个图表。