簡體   English   中英

OrientDB 遍歷 SQL 查詢效率

[英]OrientDB Traverse SQL query efficiency

抱歉,我是 Graphing DB 的新手! 我在OrientDB 中有以下基本結構:

在此處輸入圖片說明

我需要獲得與給定User相關的所有permission permission始終包含在RoleRole可以直接屬於UserTeam 我沒有將它添加到圖像中,但User > RoleTeam > Role之間的邊緣has . User > Team之間是member

我目前的做法是:

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

但是,我懷疑有一個更有效的方法來實現這一點。

您可以使用命名邊,而不是使用any()進行遍歷。

例如。 如果user -belongsTo-> teamuser,team -hasPermission-> permission您可以像這樣編寫此查詢

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

這將避免遍歷不需要的分支。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM