复杂数据权限设计方案
生活随笔
收集整理的這篇文章主要介紹了
复杂数据权限设计方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需求:有個權限樹,資源掛在樹的節點上面。父節點的權限可以訪問所有子節點的資源。
更具體點,一個公司有一個部門,這個部門是棵樹(權限樹)。每發布一個課程,都需要設置屬于哪個部門的權限。每個人屬于部門。這樣,來一個人,他可以看到該部門所有子部門的所有資料。
?
方案1:基于數據庫的實現
?
?
這是一棵權限樹。子節點的值為父節點copy+一個遞增的數字。
資源的表有個字段存儲節點的數字。
?
當用戶權限在某個節點的時候,使用mysql?? like 'X%'??就可以找到下面的所有的資源。
?
?
方案2:
使用搜索引擎實現。
?
資源a掛在1上,a的標簽是[1];資源b掛在2上,標簽是[1,2]?
用戶權限是1,可以找到a,b的資源。如果用戶權限是2,用2搜索,可以找到b的資源
標簽:就是從根到當前節點的路徑。中間用,或者空格分割,這樣es就可以分詞。
?
方案1跟2各有千秋。方案1?在多表join的時候,比較方便。實際業務場景除了權限做過濾,還有其他的搜索條件。
轉載于:https://www.cnblogs.com/gengaixue/p/9241531.html
總結
以上是生活随笔為你收集整理的复杂数据权限设计方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018.06.28 与或(线段树)
- 下一篇: 前端工作流