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 '组织机构表';