Arangodb 何时使用边与连接

Arangodb 何时使用边与连接,arangodb,Arangodb,由于ArangoDB是多模型数据库,我们可以选择将连接建模为图边或“指针”(指向其他文档的单个ID或ID列表) 在哪种情况下,您推荐哪种类型?每种情况(一个、一个、多个、多个、无限级别)的优缺点(速度、查询复杂性/易用性等)是什么,其中后者可能是图形最明显的情况(使用遍历、最短路径等) 我见过一个作家和书籍的例子,一个多重关系,其中使用了边缘。但我猜它也可以被建模为带有作者id列表的图书对象?我已经看到一些关于边的专业是,它们可以有属性,例如类型,但同样,这也可以很容易地建模为[{propert

由于ArangoDB是多模型数据库,我们可以选择将连接建模为图边或“指针”(指向其他文档的单个ID或ID列表)

在哪种情况下,您推荐哪种类型?每种情况(一个、一个、多个、多个、无限级别)的优缺点(速度、查询复杂性/易用性等)是什么,其中后者可能是图形最明显的情况(使用遍历、最短路径等)


我见过一个作家和书籍的例子,一个多重关系,其中使用了边缘。但我猜它也可以被建模为带有作者id列表的图书对象?我已经看到一些关于边的专业是,它们可以有属性,例如类型,但同样,这也可以很容易地建模为[{property:value,id:id},…]?

我实际上已经就这个问题写了一篇博文:。本文比较笼统,但从ArangoDB的角度讨论了整个问题。我想我对你的问题的回答是“这在很大程度上取决于在使用过程中对数据库的查询。”上面文章中的“查询图”一节解释了这一点。如果您需要更多信息,可以通过max(at)arangodb.com直接询问我。

那么您会说,对于项目符号1-3(带/不带属性/标签的邻居查询+固定距离查询),连接是首选?并且只对更多的“图形”数据使用边缘集合?以下是我对数据模型所做的。我将所有关系都创建为边集合,即使我不需要它们用于任何图形查询。将来,当我需要它们进行图形查询时,我将创建图形。在此之前,我不会用这些边创建图形。我将使用它们作为普通的文档集合。注意:边缘收集与普通文档收集类似。只是他们有从和到。