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
    --....等等其他字段
    )

     欢迎评论。

  • 相关阅读:
    手把手的教你激活PyCharm --Pycharm激活详细教程(二)(非常详细,非常实用)
    api-ms-win-crt-process-l1-1-0.dll 丢失的处理,遇到问题和完美解决
    关于pycharm安装出现的interpreter field is empty,无法创建项目存储位置
    手把手的教你安装PyCharm --Pycharm安装详细教程(一)(非常详细,非常实用)
    谷歌浏览器的各种插件网址Chrome插件(谷歌浏览器)-超级详细
    selenium之 chromedriver与chrome版本映射表(更新至v2.43)
    火狐l浏览器所有版本
    1、MySQL主从同步机制及同步中的问题处理
    PyCharm证书过期:Your license has expired
    Git的使用--如何将本地项目上传到Github(三种简单、方便的方法)(二)(详解)
  • 原文地址:https://www.cnblogs.com/chenwolong/p/13386532.html
Copyright © 2011-2022 走看看