复杂数据权限设计方案
Posted gengaixue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复杂数据权限设计方案相关的知识,希望对你有一定的参考价值。
需求:有个权限树,资源挂在树的节点上面。父节点的权限可以访问所有子节点的资源。
更具体点,一个公司有一个部门,这个部门是棵树(权限树)。每发布一个课程,都需要设置属于哪个部门的权限。每个人属于部门。这样,来一个人,他可以看到该部门所有子部门的所有资料。
方案1:基于数据库的实现
这是一棵权限树。子节点的值为父节点copy+一个递增的数字。
资源的表有个字段存储节点的数字。
当用户权限在某个节点的时候,使用mysql like ‘X%‘ 就可以找到下面的所有的资源。
方案2:
使用搜索引擎实现。
资源a挂在1上,a的标签是[1];资源b挂在2上,标签是[1,2]
用户权限是1,可以找到a,b的资源。如果用户权限是2,用2搜索,可以找到b的资源
方案1跟2各有千秋。方案1 在多表join的时候,比较方便。实际业务场景除了权限做过滤,还有其他的搜索条件。
以上是关于复杂数据权限设计方案的主要内容,如果未能解决你的问题,请参考以下文章