用戶、角色、權限數據庫設計
阿新 • • 發佈:2017-09-07
style str ole 管理 table char per varchar prim
權限管理
權限管理,主要是人員和權限之間的關系,但是如果讓人員直接和權限打交道,那麽權限的賦值、權限的撤銷以及權限的變動會非常的麻煩,這樣引入了,角色,給角色賦權限,然後給用戶分配角色。
這個設計主要涉及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]
用戶、角色、權限數據庫設計