数据库中建一个权限表,存放操作。权限表rights
-------------
id name
1 浏览
2 编辑
3 审核
用户组表usergroup
-------------
id name
1 管理组
2 会员组
现在要把权限赋矛给用户组,怎么赋予呢?想到两种方法:第一种:
在用户组表中增加一个字段rights,将用户组拥有的权限id值以豆号分隔组成字符串存入。
如:
id name rights
1 管理组 1,2,3第二种:
按照三范式增加一个 用户组--权限 的关联表实现多对多的关联。该用哪种方式呢?
-------------
id name
1 浏览
2 编辑
3 审核
用户组表usergroup
-------------
id name
1 管理组
2 会员组
现在要把权限赋矛给用户组,怎么赋予呢?想到两种方法:第一种:
在用户组表中增加一个字段rights,将用户组拥有的权限id值以豆号分隔组成字符串存入。
如:
id name rights
1 管理组 1,2,3第二种:
按照三范式增加一个 用户组--权限 的关联表实现多对多的关联。该用哪种方式呢?
一个整型数 2字节 可容纳16个权限字
一个长整型数 4字节 可容纳32个权限字 (php的int类型)
mysql 的 set 类型字段可容纳64个权限字
足够使用了
浏览 1
编辑 2
审核 4
管理组 1|2|4
会员组 1|2
2楼xuzuning的方法很好,实现容易,操作方便。优于你的两个方案,你的第1个方案优于第2个,虽然维护复杂点,但概念清晰通俗。
1 job 管理员
2 tom 审查员
3 bob 普通会员
(编号, 职称, 浏览, 添加, 删除, 审核, 管理) -- 角色表
1 管理员 y y y y y
2 审查员 y y n y n
3 普通会员 y n n n n