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

来源:互联网 发布:Linux deploy vnc 编辑:程序博客网 时间:2024/05/22 04:26
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

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


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

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

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

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

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

增加权限具体实现

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

updateqxUsersetuserQx=userQx|8whereuserId='A'

删除第四个模块的权限

updateqxUsersetuserQx=userQx&~8whereuserId='A'

如果删除第四个模块,则不加条件就可以了
updateqxUsersetuserQx=userQx&~8
以上在SqlServer2000企业版通过。

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

在里

34&2 !=0就行了。

 
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击