数据库权限优化,权限设计BigInteger
来源:互联网 发布:seo搜外网 编辑:程序博客网 时间:2024/05/22 15:30
最近看到了一个项目的权限是根据bigineger来进行计算的菜单权限,觉得还是不错,存储上只需要存储在一个字段里就可以了,通过计算算出该角色的菜单权限即可,效率也非常的快,放在session中也非常的小,下面简单说一下思路。
首先,将界面中选好的菜单树,勾选完成后传到后台,后台通过转成字符串数组来进行设值
通过上面方法,返回一个BigInteger,然后将这个数字存入所属角色的菜单权限字段中。注意的是:这里的菜单ID必须是数字,String[] rights为所选菜单的数组,通过setbit方法一一设置进num中。
其奖,再获取权限的时候,也一样,通过把之前存入的菜单权限的biginteger和菜单ID做对比来判断是否具有该菜单权限
sum为对应角色的菜单权限值,targetRights为具体菜单ID,通过biginteger的testBit方法来判断是否存在里面,如果存在就返回true,不存在就返回false.
biginteger通过set的值,其实是2的权的和。下面有一个列子:
num的值为6,是这样计算的2^2+1^2=6。通过这种方式,不管是解析和查询其实效率都是很高的,占用session的空间也非常的小,不为是一个好的权限设计思路。
阅读全文
0 0
- 数据库权限优化,权限设计BigInteger
- 【权限设计】采用BigInteger进行的权限设计
- 采用BigInteger进行的权限设计
- 采用BigInteger进行的权限设计
- BigInteger权限判断示例
- BigInteger权限判断示例
- BigInteger权限判断示例
- BigInteger权限判断示例
- BigInteger权限判断
- BigInteger权限判断示例
- 关于BigInteger控制权限
- 权限管理数据库设计
- 数据库权限管理设计 .
- 权限管理数据库设计
- 测试权限数据库设计
- web权限数据库设计
- 数据库权限设计
- 权限数据库设计
- 怎么理解委托?委托的特点是什么?
- Java面试题全集(1)
- unity_NGUI系统学习(十一)_PopupList下拉列表(弹出列表)的创建和使用
- 类Students和对象
- Servlet监听器
- 数据库权限优化,权限设计BigInteger
- 第三层交换与路由瓶颈的解决
- js正则表达式之验证身份证
- 创建类Student和对象
- 【Java学习笔记】43:UDP一对一聊天
- Educational Codeforces Round 6 E. New Year Tree CF620E
- 九九乘法表
- 队列 (queue)
- 菜鸟Android开发起步遇到的小问题————OKHttp回调时请求后出现的问题