当前位置:文档之家› 用户、角色、权限数据库设计

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

用户、角色、权限数据库设计2010-02-08 15:20:32
分类: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]。

相关主题