|
主题: 这样的高级权限设计如何做
|
oooni
职务:普通成员
等级:2
金币:1.0
发贴:263
|
#12004/4/21 19:52:54
我想做这样的权限设计 用户表 tb_user:字段: username password uf_id 权限名称表 tb_flag: 字段: f_id f_name 关于权限设计的复杂问题
说明: uf_id 保存 f_id f_id 可以是多个 管理可以添加 权限名称 同时也可以赋予某个用户某个权限
不知道我问题说明白了没。举个例子吧:
tb_user: username:admin password:admin uf_id:1,2,5,6
tb_flag f_id: 1 2 3 4 5 6 7 8 f_name:想 说 看 听 摸 打 罚 杀
那么 admin 就拥有 想 说 摸 打 的权限了
管理员还可以添加权限 如: f_id: 9 f_name:吃
tb_flag: f_id: 1 2 3 4 5 6 7 8 9 f_name:想 说 看 听 摸 打 罚 杀 吃
问题: 数据库里如何存?取? 页面里如何做判断?
|
oooni
职务:普通成员
等级:2
金币:1.0
发贴:263
|
#22004/4/21 21:34:51
先不说别的 你的站 我很喜欢
有很多实用的东西 权限这个 我再仔细研究一下
|
缺缺
职务:管理员
等级:8
金币:41.0
发贴:9620
|
#32004/4/21 21:56:18
比如某个页面需要"打"的权限 那么就在当前用户的权限一面查找对应的"6"是不是存在
|
沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
|
#42004/4/22 9:23:04
01001010010101101 呵呵,用二进制代表权限吧,1表示有,0表示没有,权限由管理员进和分配,管理员可以无限制的添加权限,每次添加一种权限,就把当前所有用户的权限更新一下,另外自己写一个函数,来判断用户是否有权限进入当前页面,不过因为权限的更新,所以这个函数可能也要不断的修改,暂时也同有想到什么好的办法,哪位有好的思路可以提供一下。
难人一个……
|
oooni
职务:普通成员
等级:2
金币:1.0
发贴:263
|
#52004/4/22 17:06:11
楼上的办法 我只听人说过 自己太菜了 肯定弄不来的
|
janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
|
#62004/4/23 9:35:34
不建议将分散的权限代码存储在一个字段中,这样操作起来效率会比较低。 对于数量较少的权限(一般32个以下),可以考虑按位存取,这样,所以权限的集合可以存储为一个整数。通过对特定位进行按位与操作即可判断用户在该位上有没有权限。 如果想以后能方便地扩展,可以再增加一个 UserPermission 表,基本设计如下: tb_UserPermission: f_UserName:用户标识 f_Id:权限标识 那么判断一个用户admin有没有“想”权限就可以表达为: SELECT COUNT(*) FROM tb_UserPermission WHERE f_UserName='admin' AND f_Id=1
|