復雜數據權限設計方案


需求:有個權限樹,資源掛在樹的節點上面。父節點的權限可以訪問所有子節點的資源。

更具體點,一個公司有一個部門,這個部門是棵樹(權限樹)。每發布一個課程,都需要設置屬於哪個部門的權限。每個人屬於部門。這樣,來一個人,他可以看到該部門所有子部門的所有資料。

 

方案1:基於數據庫的實現

 

計算機生成了可選文字:

 

這是一棵權限樹。子節點的值為父節點copy+一個遞增的數字。

資源的表有個字段存儲節點的數字。

 

當用戶權限在某個節點的時候,使用mysql   like 'X%'  就可以找到下面的所有的資源。

 

 

方案2:

使用搜索引擎實現。

計算機生成了可選文字:

 

資源a掛在1上,a的標簽是[1];資源b掛在2上,標簽是[12 

用戶權限是1,可以找到ab的資源。如果用戶權限是2,用2搜索,可以找到b的資源

標簽:就是從根到當前節點的路徑。中間用,或者空格分割,這樣es就可以分詞。

 

方案12各有千秋。方案在多表join的時候,比較方便。實際業務場景除了權限做過濾,還有其他的搜索條件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM