zoukankan      html  css  js  c++  java
  • 通用权限管理【数据库】设计方案

    数据库设计如下:

    --组织架构表
    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
    --....等等其他字段
    )

     欢迎评论。

  • 相关阅读:
    iOS sqlite3
    NSObject常用方法
    驱动项目设置中混淆点小记
    globalsign代码签名最新步骤
    Web学习资源及手册查询整理
    H5基于iScroll实现下拉刷新,上拉加载更多
    移动端meta标签
    一、开发过程中遇到的js知识点总结(1)
    vue API 知识点(4) --- 指令、特殊 attribute 、内置组件
    vue API 知识点(3) --- 实例 总结
  • 原文地址:https://www.cnblogs.com/chenwolong/p/13386532.html
Copyright © 2011-2022 走看看