我正在探索Arangodb,我不确定我是否正确理解如何在ArangoDb中使用图形概念。
让我们说我正在为社交网络建模。我应该为整个社交网络创建一个图表,还是应该为每个人及其连接创建一个图表? 我觉得我应该使用单个图表......但是有没有与该选择相关的性能/功能问题?
也许潜在的问题是:我应该将arangodb中的图形概念视为技术概念还是与业务相关的概念?
由于
答案 0 :(得分:3)
您应该使用不使用每人的图表。第一个快速回答是使用单个图表。
总的来说,我认为您应该将图形概念视为技术概念。话说回来,很常见的是,(数学)图表非常自然地模拟了商业关系。因此,图数据库中的技术概念图非常好地映射到业务逻辑。
社交网络是最好的例子之一。这里的典型问题是"找到用户的朋友?","找到用户朋友的朋友?"或者"从A人到B人的最短路径是什么?"。图形数据库对涉及先验未知路径长度的问题最有用,例如在最短路径示例中。
回到最初的问题:您应该首先查看有关数据的查询。然后,您可以创建它,以便这些查询可以方便地映射到数据存储可以回答的标准图形操作(或实际上是其他查询)。然后,它会告诉您同一图表中应包含哪些信息,以及哪些位属于不同的图表。
在您的社交网络的原始用例中,我假设您要运行涉及友谊关系链的查询,因此这些链中的边必须位于同一图中。然而,在更复杂的情况下,例如可以想象你有一个友谊"图表和"跟随"图表,使用不同的边但使用相同的顶点。在这种情况下,您的社交网络可能有两张图表。