通用权限管理【数据库】设计方案

数据库设计如下:

--组织架构表
create database DbRoleManager
go
use DbRoleManager
go
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 (UserAccountId) REFERENCES User_Account(UserAccountId),--员工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 (UserAccountId) REFERENCES User_Account(UserAccountId),--员工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
--....等等其他字段
)

 欢迎评论。

原文地址:https://www.cnblogs.com/chenwolong/p/13386532.html