用“位”来存储、修改用户权限的方法

发表于:2007-05-25来源:作者:点击数: 标签:用户方法修改存储权限
用位来存储、修改用户权限的方法 以前我用记录方式,如A用户有3个模块权限,则A有三条记录 看到别人的程序里有这种方法,感觉不错,给大家看看有没有优点可

用“位”来存储、修改用户权限的方法





以前我用记录方式,如A用户有3个模块权限,则A有三条记录


看到别人的程序里有这种方法,感觉不错,给大家看看有没有优点可取。


用户权限用一个int字段表示,可以放32位,


如果有第1,3,4模块的权限则,值为1+4+8=13


___________________
_userId_____userQx___
A?????????????? |???? 13
_________|___________


增加权限具体实现


如增加第四个模块的权限,4的二进制值8


update qxUser set userQx = userQx|8 where userId='A'


删除第四个模块的权限


update qxUser set userQx = userQx&~8 where userId='A'


如果删除第四个模块,则不加条件就可以了

update qxUser set userQx = userQx&~8

以上在SqlServer2000企业版通过。


欢迎大家讨论,有更好的方法大家共享呀~~~


Java


34&2 !=0就行了。


 

原文转自:http://www.ltesting.net