1. 程式人生 > 實用技巧 >通用許可權管理【資料庫】設計方案

通用許可權管理【資料庫】設計方案

資料庫設計如下:

create table User_Dept
(
DeptId varchar(50) primary key not null,
DeptName nvarchar(50),--名稱
DeptParentId varchar(50),--父親ID
DeptParentName nvarchar(50),--父親組織名稱
DeptDescription nvarchar(50),--組織描述
DeptSort int default(0),--排序欄位
DeptIcon varchar(280),--圖示
DeptType varchar(50) default('Dept'),
CreateTime datetime,
DeleteFlag bit 
default(0) not null --...其他備註欄位 ) --選單表 create table User_MenuButton ( MenuButtonId varchar(50) primary key not null, MenuButtonName nvarchar(50),--名稱 MenuButtonMode varchar(50),--模組 所屬的功能模組 例如 加盟商管理 MenuButtonPath varchar(280),--路徑 MenuButtonParentId varchar(50),--父親ID MenuButtonSort int default(0),--排序欄位 MenuButtonIcon varchar(
280),--圖示 MenuButtonType varchar(50) default('Menu'),--Menu 或 Button CreateTime datetime, DeleteFlag bit default(0) not null, --...其他備註欄位 ) --角色表 create table User_Role ( RoleId varchar(50) primary key not null, RoleName nvarchar(50),--角色名稱 RoleCode varchar(50),--角色編碼 RoleDesc varchar(50),--角色描述 CreateTime datetime, DeleteFlag bit
default(0) not null --...其他備註欄位 ) --組織架構和角色對映 create table User_Role_Dept ( RoleDeptId varchar(50) primary key, DeptId varchar(50) FOREIGN KEY (DeptId) REFERENCES User_Dept(DeptId), RoleId varchar(50) FOREIGN KEY (RoleId) REFERENCES User_Role(RoleId), CreateTime datetime, DeleteFlag bit default(0) not null ) --角色與選單-按鈕的對映表 create table User_Role_MenuButton ( RoleMenuButtonId varchar(50) primary key, RoleId varchar(50) FOREIGN KEY (RoleId) REFERENCES User_Role(RoleId), MenuButtonId varchar(50) FOREIGN KEY (MenuButtonId) REFERENCES User_MenuButton(MenuButtonId), CreateTime datetime, DeleteFlag bit default(0) not null --...其他備註欄位 ) --員工表 create table User_Account ( UserAccountId varchar(50) primary key not null, UserAccount varchar(50), UserPassword varchar(150), CreateTime datetime, DeleteFlag bit default(0) not null --....等等其他欄位 ) --員工與組織架構之間的對映關係 --原則上一個員工對應一個組織架構 create table User_Account_Dept ( UserAccountDeptId varchar(50) primary key not null, UserAccountId varchar(50) FOREIGN KEY (DeptId) REFERENCES User_Dept(DeptId),--員工ID, DeptId varchar(50) FOREIGN KEY (DeptId) REFERENCES User_Dept(DeptId),--員工所屬的組織 CreateTime datetime, DeleteFlag bit default(0) not null --....等等其他欄位 ) --員工與角色之間的對映關係 --原則上一個員工可以對應某幾個組織中的N個角色 create table User_Account_Role ( UserAccountRoleId varchar(50) primary key not null, UserAccountId varchar(50) FOREIGN KEY (DeptId) REFERENCES User_Dept(DeptId),--員工ID, DeptId varchar(50) FOREIGN KEY (DeptId) REFERENCES User_Dept(DeptId),--員工所屬的組織--冗餘欄位 RoleId varchar(50) FOREIGN KEY (RoleId) REFERENCES User_Role(RoleId),--某個組織的某角色ID CreateTime datetime, DeleteFlag bit default(0) not null --....等等其他欄位 )

歡迎評論。