用二进制位移实现繁琐权限的划分
1,优点:计算机计算快,性能高。特别是对于一个权限划分比较繁琐的情况,每个页面都有好多权限(增删改查上传下载等),其他方法比对时较慢。
2,二进制位移:初始数据:00 00 00 01;一次位移:00 00 00 10;二次位移:00 00 01 00;三次位移:00 00 10 00;依次类推。
3,定义枚举:通过“二进制位移”自动实现:增00 00 00 01;删00 00 00 10;改00 00 01 00;查00 00 10 00。
4,计算:当用户勾选“增”和“查”时。增00 00 00 01;查00 00 10 00,将两者求或得:00 00 10 01,将00 00 10 01转换为十进制存储于数据库。
6,当用户登录到系统中时,进行比对,判断是否有这项权限。从数据库中取出来的数据转换为二进制后是:00 00 10 01。
7,第一次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,首先与“增”(00 00 00 01)进行比对,结果是“true”,说明有这个权限。
8,第二次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,其次与“删”(00 00 01 00)进行比对,结果是“false”,说明无这个权限。
9,第三次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,其次与“改”(00 00 00 10)进行比对,结果是“false”,说明无这个权限。
10,第四次比对:数据库中取出来的数据转换为二进制后是:00 00 10 01,其次与“删”(00 00 00 01)进行比对,结果是“true”,说明有这个权限。
11,依次类推... ...
12,结果所具有的权限就是:有“增”、无“删”、无“改”、有“查”、... ...