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

     欢迎评论。

  • 相关阅读:
    3、Less-计算
    2、Less-混合
    1、Less-初见
    5、反射-动态代理
    4、反射-类的构造器:Constrctor
    3、反射-Field
    2、反射-Method&父类
    1、反射-Class&ClassLoader
    5、URLConnection(3)
    Linux进程状态查询
  • 原文地址:https://www.cnblogs.com/chenwolong/p/13386532.html
Copyright © 2011-2022 走看看