数据库设计如下:
--组织架构表 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 --....等等其他字段 )
欢迎评论。