OrientDB Traverse SQL查询效率

准确的

抱歉,我是Graphing DB的新手!我在OrientDB中具有以下基本结构

在此处输入图片说明

我需要获取permission与给定的所有关联Userpermission总是包含在中,Role但是aRole可以直接属于aUser或a Team我还没有把它添加到图像,但之间的边缘User > RoleTeam > Rolehas和之间User > Teammember

我当前的方法是:

SELECT permission FROM (
  TRAVERSE any() FROM #23:0 WHILE $depth <=4
) WHERE @class='Role'

但是,我怀疑实现这一目标的效率更高。

路易吉·德拉奎拉(Luigi Dell'Aquila)

除了使用any()遍历外,还可以使用命名的边。

例如。如果可以user -belongsTo-> teamuser,team -hasPermission-> permission您可以编写此查询,例如

SELECT FROM (
   TRAVERSE out('belongsTo', 'hasPermission') FROM #23:0 WHILE $depth <=2
) WHERE @class='Role'

这将避免遍历不需要的分支。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章