複雜數據權限設計方案

需求:有個權限樹,資源掛在樹的節點上面。父節點的權限能夠訪問全部子節點的資源。mysql

更具體點,一個公司有一個部門,這個部門是棵樹(權限樹)。每發佈一個課程,都須要設置屬於哪一個部門的權限。每一個人屬於部門。這樣,來一我的,他能夠看到該部門全部子部門的全部資料。sql

 

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

 

計算機生成了可選文字:

 

這是一棵權限樹。子節點的值爲父節點copy+一個遞增的數字。搜索引擎

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

 

當用戶權限在某個節點的時候,使用mysql   like 'X%'  就能夠找到下面的全部的資源。3d

 

 

方案2:xml

使用搜索引擎實現。blog

計算機生成了可選文字:

 

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

用戶權限是1,能夠找到ab的資源。若是用戶權限是2,用2搜索,能夠找到b的資源資源

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

 

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

相關文章
相關標籤/搜索