QFSoft

FireTiger

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  357 随笔 :: 0 文章 :: 155 评论 :: 0 引用

公告

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


以前我用记录方式,如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就行了。
posted on 2007-08-30 12:57 MFKSoft 阅读(727) 评论(2) 编辑 收藏
web counter
web counter