不建议将分散的权限代码存储在一个字段中,这样操作起来效率会比较低。
对于数量较少的权限(一般32个以下),可以考虑按位存取,这样,所以权限的集合可以存储为一个整数。通过对特定位进行按位与操作即可判断用户在该位上有没有权限。
如果想以后能方便地扩展,可以再增加一个 UserPermission 表,基本设计如下:
tb_UserPermission:
f_UserName:用户标识
f_Id:权限标识
那么判断一个用户admin有没有“想”权限就可以表达为:
SELECT COUNT(*) FROM tb_UserPermission WHERE f_UserName='admin' AND f_Id=1