系统权限分配一般需要几个表

开发一个系统,需要给不同用户分配不同权限,具体就是哪怕同是员工,或者同是管理员也可以给他们分配不同的权限,要实现这样的功能需要几个表来实现最合适,当然“用户名”,密码之类的是一定要考虑进去了,谢了。
二楼的老兄,你是说把每个功能都作为一个编号吗?如果是这样的话,那用户组岂不是应该对应很多功能
如果你是说每个功能的集合为一个id的话,那直接分两个表就可以了,可以给不同的用户组与固定的不同的权限。

本人比较愚笨,还请多多指点。谢谢了。

简单的设计,需要三个表
一 功能(Functions)
二 用户组(UserGroups)
三 用户(Users)

将功能分配给用户组,将用户划入相应的组已取得相应的权限,搞定。
密码之类,与系统架构无关,将来需要时随时可以添加。

create table UserGroups
(
gid int not null primary key,
gname varchar(50),
fid int references Functions(fid)
)

create table Users
(
uid int not null ,
uname varchar(50),
gid int references UserGroup(gid)
)

create table Functions
(
fid int not null primary key,
fname varchar(50)
)

以上仅是简单的设计,你可以从Windows的“计算机管理〉本地用户和组”中看到类似的方案。

功能细化的粒度以单一功能为宜,商业软件要求更严格,应渗透到每一过程和函数中。
实际上权限管理远非如此简单。请告诉我,“功能”是什么?
A 限制
B 针对“数据”的“操作”
当你选B时,你觉得以上方案还能满足需求吗?

关于使用几个表,是实现的问题,不是架构设计内容,我可以把整个数据库设计在一张表内,但从效率上看,我决不会这样去做。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-13
一个表就可以搞定了