8、权限模型RABC建表SQL

8、权限模型RABC建表SQL

1、用户表

用户、角色、权限、菜单、用户角色、角色权限、角色菜单

create table user
(
    id                   bigint auto_increment comment 'id'
        primary key,
    birthday             date                                  null comment '生日',
    gender               varchar(1)                            null comment '性别',
    username             varchar(32)                           not null comment '用户名',
    password             varchar(256)                          not null comment '密码',
    remark               varchar(32)                           null comment '描述',
    mobile               varchar(11)                           null,
    name                 varchar(32)                           null comment '姓名',
    is_insurer           varchar(1)                            null comment '是否保司:1-是,0-否',
    identity_type        bigint                                null,
    identity             varchar(25)                           null,
    state                varchar(1)  default '1'               null comment '状态',
    operator             varchar(50) default ''                not null comment '操作人',
    is_delete            varchar(1)  default '0'               not null comment '逻辑删除',
    create_time          datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time          datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    manufacturer_id      bigint                                not null comment '组织id',
    data_isolation       tinyint(2)  default 0                 null comment '是否数据隔离',
    distribute_clue      tinyint(2)  default 0                 null comment '是否分配线索',
    constraint user_username
        unique (username)
)
    comment '用户表';

create index idx_name
    on user (name)
    comment '姓名';

2、角色表

create table role
(
    id           bigint auto_increment comment 'id'
        primary key,
    name         varchar(32)                           null comment '名称',
    keyword      varchar(64)                           null comment '关键字',
    description  varchar(128)                          null comment '描述',
    service_code varchar(32)                           not null comment '服务码',
    state        varchar(1)  default '1'               null comment '状态',
    operator     varchar(50) default ''                not null comment '操作人',
    is_delete    varchar(1)  default '0'               not null comment '逻辑删除',
    create_time  datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time  datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '角色表';

3、权限表

create table permission
(
    id          bigint auto_increment comment 'id'
        primary key,
    name        varchar(32)                           null comment '名称',
    keyword     varchar(64)                           null comment '关键字',
    description varchar(128)                          null comment '描述',
    state       varchar(1)  default '1'               null comment '状态',
    operator    varchar(50) default ''                not null comment '操作人',
    is_delete   varchar(1)  default '0'               not null comment '逻辑删除',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '权限表';

4、菜单表

create table menu
(
    id             bigint auto_increment comment 'id'
        primary key,
    name           varchar(128)                          null comment '名称',
    name_code      varchar(128)                          null comment '名称码',
    path           varchar(128)                          null comment '路径',
    priority       int                                   null comment '优先级',
    icon           varchar(64)                           null comment '按钮:add-添加,delete-删除,edit-编辑,query-查询',
    description    varchar(128)                          null comment '描述',
    parent_menu_id bigint                                null comment '父级id',
    level          int                                   null comment '等级',
    state          varchar(1)  default '1'               null comment '状态',
    operator       varchar(50) default ''                not null comment '操作人',
    is_delete      varchar(1)  default '0'               not null comment '逻辑删除',
    create_time    datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time    datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '菜单表';

5、用户角色表

create table user_role
(
    user_id     bigint                                not null comment '用户id',
    role_id     bigint                                not null comment '角色id',
    operator    varchar(50) default ''                not null comment '操作人',
    is_delete   varchar(1)  default '0'               not null comment '逻辑删除',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    primary key (user_id, role_id)
)
    comment '用户角色表';

6、角色权限表

create table role_permission
(
    role_id       bigint                                not null comment '角色id',
    permission_id bigint                                not null comment '权限id',
    operator      varchar(50) default ''                not null comment '操作人',
    is_delete     varchar(1)  default '0'               not null comment '逻辑删除',
    create_time   datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time   datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    primary key (role_id, permission_id)
)
    comment '角色权限表';

7、角色菜单表

create table role_menu
(
    role_id     bigint                                not null comment '角色id',
    menu_id     bigint                                not null comment '菜单id',
    operator    varchar(50) default ''                not null comment '操作人',
    is_delete   varchar(1)  default '0'               not null comment '逻辑删除',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间',
    primary key (role_id, menu_id)
)
    comment '角色菜单表';

8、扩展表

8.1、地区表

create table area
(
    id         bigint auto_increment comment '城市id'
        primary key,
    name       varchar(100)            not null comment '城市名称',
    type       varchar(255)            not null comment '城市级别',
    short_code varchar(100) default '' null comment '本地车牌简码',
    pid        int                     null comment '父级Id',
    disabled   tinyint(1)              null comment '是否生效'
)
    comment '地区信息表,该表中的type(城市级别)信息依赖area_type表' charset = utf8;

create index FK_AREA_REF_AREA_TYPE
    on area (type);

8.2、用户地区表

create table user_area
(
    id          bigint auto_increment comment 'id'
        primary key,
    user_id     bigint                                not null comment '用户id',
    area_id     bigint                                not null comment '地区id',
    operator    varchar(50) default ''                not null comment '操作人',
    create_time datetime    default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime    default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '上次修改时间'
)
    comment '用户地区中间表';

create index user_area_index
    on user_area (user_id, area_id);

8.3、地区类型表

create table area_type
(
    id          bigint auto_increment
        primary key,
    name        varchar(45)   not null comment '级别名称',
    description varchar(2000) null comment '级别描述',
    disabled    tinyint(1)    not null
)
    charset = utf8;

8.4、组织机构表

create table organization
(
    id          bigint auto_increment comment 'id'
        primary key,
    name        varchar(100) default ''                not null comment '名称',
    code        varchar(45)  default ''                null comment '编码',
    short_code  varchar(20)                            null comment '顶级机构简称',
    short_name  varchar(45)  default ''                not null comment '简称',
    level       int                                    null comment '层级',
    parent_code varchar(45)  default '0'               not null comment '机构code',
    province_id bigint                                 not null comment '所在省',
    city_id     bigint                                 not null comment '所在市',
    area_id     bigint       default 0                 null comment '所在区',
    status      tinyint(1)   default 1                 not null comment '状态 1-启用,2-禁用',
    type        int                                    null comment '机构属性',
    third_code  varchar(20)                            null comment '组织机构提供的code',
    operator    varchar(50)  default ''                not null comment '操作人',
    create_time datetime     default CURRENT_TIMESTAMP not null comment '创建时间',
    update_time datetime     default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间',
    constraint uniq_short_name
        unique (short_name)
)
    comment '组织机构表';
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白de成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值