用户、角色、权限数据库设计

分类: Linux

权限管理

权限管理,主要是人员和权限之间的关系,但是如果让人员直接和权限打交道,那么权限的赋值、权限的撤销以及权限的变动会非常的麻烦,这样引入了,角色,给角色赋权限,然后给用户分配角色。

这个设计主要涉及6张表,

用户表,(用于存储用户的所有信息)

权限表,(用于存储所有的权限)

角色表,(用于存储所有的角色)

用户和角色的关联表,(用户和角色的关联)

角色和权限的关联表,(角色和权限的关联)

菜单表,(里面关联了权限,主要是现实用的)

用户表

 

代码
    
    
CREATE TABLE [ dbo ] . [ Users ] (
[ UserID ] [ int ] IDENTITY ( 1 , 1 ) NOT NULL ,
[ UserName ] [ nvarchar ] ( 50 ) primary key , -- 帐号
[ Password ] [ nvarchar ] ( 50 ) ,
[ UserDspName ] [ nvarchar ] ( 50 ) ,
[ Sex ] [ char ] ( 1 ),
[ Birthday ] [ datetime ] ,
[ Phone ] [ nvarchar ] ( 20 ) ,
[ Email ] [ nvarchar ] ( 100 ),
[ EmployeeID ] [ nvarchar ] ( 20 ) ,
[ Activity ] [ bit ] , -- 是否可用
[ UserType ] [ char ] ( 2 ) ,
[ Style ] [ nvarchar ] ( 50 )
)

权限表:

   
   
CREATE TABLE [ dbo ] . [ Permission ] (
[ PermissionID ] int identity ,
[ Description ] [ nvarchar ] ( 50 ) -- 权限名称
)

角色表:

 

   
   
CREATE TABLE [ dbo ] . [ Roles ] (
[ RoleID ] [ int ] IDENTITY ,
[ Description ] [ nvarchar ] ( 200 ) -- 角色名称
)

 

 

用户和角色的关联表:

代码
    
    
CREATE TABLE [ dbo ] . [ UserRoles ] (
[ UserID ] [ int ] NOT NULL , -- 用户ID
[ RoleID ] [ int ] not null , -- 权限ID
CONSTRAINT [ PK_UserRoles ] PRIMARY KEY CLUSTERED
(
[ UserID ] ASC ,
[ RoleID ] ASC
)
WITH (IGNORE_DUP_KEY = OFF ) ON [ PRIMARY ]
)
ON [ PRIMARY ]

角色和权限的关联表:

 

代码
    
    
CREATE TABLE [ dbo ] . [ RolePermissions ] (
[ RoleID ] int NOT NULL , -- 角色ID
[ PermissionID ] int NOT NULL , -- 权限ID
CONSTRAINT [ PK_RolePermissions ] PRIMARY KEY CLUSTERED
(
[ RoleID ] ASC ,
[ PermissionID ] ASC
)
WITH (IGNORE_DUP_KEY = OFF ) ON [ PRIMARY ]
)
ON [ PRIMARY ]

 

菜单表:

 

代码
    
    
CREATE TABLE [ dbo ] . [ menu ] (
[ ID ] [ int ] IDENTITY ( 1 , 1 ) NOT NULL ,
[ TextCH ] [ nvarchar ] ( 100 ) NULL , -- 菜单的中文显示
[ TextEN ] [ nvarchar ] ( 200 ) NULL , -- 菜单的英文名称
[ ParentID ] [ int ] NULL , -- 父节点
[ orderID ] [ int ] NULL , -- 同一个父节点下面的排序
[ Url ] [ nvarchar ] ( 200 ) , -- 菜单对于的权限
[ PermissionID ] [ int ] NULL , -- 权限ID
[ ImageUrl ] [ nvarchar ] ( 50 ) NULL -- 菜单图片链接
) ON [ PRIMARY ]

以上便是所有的数据库结构,代码正在实现中;

最后权限的最终呈现和表现是通过菜单来实现的,个人感觉粒度太大了(最小是页面),现在我想知道能否将权限加到某一个按钮上面,请大家指点

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值