项目中用到二的权进行计算来代替 多对多的关联表
下面以角色和权限这种关系来说明问题
如果用普通的来计算
首先一个角色表 一个权限表 一个多对多关联表
查询角色所拥有的权限是,进行检索关联表,来关联权限表得到所拥有的权限
使用二的权来计算
角色表有一列来存权限id二的权和
查询角色权限是要先查出用户的权限的二的权的和,再查出整张表的权限 循环所有权限进行权和判断查看是否包含在权和中得出所拥有的权限
二的权优点:
免去关联查询
查询更方便
二的权缺点:
必须要查询出关联表的所有数据,进行遍历判断
如果不用缓存的话效率低,因为每次都要查询出所有的数据
不能逆向查询,要想查询出权限下的所有角色那就比较麻烦了
有句老话说的好,鱼和熊掌不可兼得
各有各的优点,大家思量好在决定用哪个吧