在实际系统开发中,功能权限,人员权限的设计复杂度非常高,很久以前我看到一个系统的权限设计采用的是2的倍数方式来实现的。如对某个数据的增删改查,可以将其权限值定义为增 1(2的0次方)、删 2(2的1次方)、改 4(2的2次方)、查 8(2的3次方)。在给某人授权时就可以进行组合了,如他的权限码是9时,他的权限就是增和查,15时就是具备增删改查功能,授权时就是功能码相加,解码时就是二进制位与,这样一个模块的功能可以拆分为12个功能,功能单个最大代码就是8191 ,或者有所有权限设定为2的12次方,在前端用2的12次方和其权限码相与时得到的数就是其拥有全部权限。