前不久做的一个系统,用户-权限是这样设计的,
用户表:
Id int primary key not null identity(1,1) 主键
UloginName varchar(20) not null 登录名
UName varchar(20) not null姓名
UPassword nvarchar(50) not null 密码
State int –标识管理员和普通用户(相当于角色表)
Email varchar(50) 邮箱
权限表:
权限表:(Permissions)
Id int primary key not null identity(1,1) 主键
Permission varchar(50) not null 权限
用户_权限表:
用户_权限表(UserPermis)
Id int primary key not null identity(1,1) 主键
Uid int not null –用户主键
Pid int not null –权限主键
,这样设计不知道是否可取,我做上一个系统的时候权限就设计成这样,但是在删除数据的时候,就出现这样的问题,是否符合数据库设计规范(范式),
必须要在删除的方法里传入UId和PId删除,并没有依靠主键Id删除,数据虽然删除了,但是不知道这样设计是否合理,
在网上还看到这样的设计:
用户_权限表(UserPermis)
Uid int not null –用户主键
Pid int not null –权限主键
把UId和PId设计成主键,(不知道是不是联合主键的意思,我没有使用过联合主键),哪一种设计更好。。。谢谢大虾...
自己做的权限系统表:
WebAdmin(用户表)
WebRole(角色表)
WebAdminRole(用户与角色)多对多
WebDepartment(用户部门表)一对多
WebPage(权限页面表)
WebPageRole(页面与角色)
WebPageControl(页面权限控件表)
WebPageContorlPower(控件与角色)
你这样就是不同角色有相同的权限,要是我想让相同的用户也有不同的权限怎么办啊,那你就不用角色这个表了,直接用户对权限就行了。权限管理有基本就这两种的。