分享

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

 ThinkTank_引擎 2017-06-13

权限管理

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

这个设计主要涉及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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多