use xinnengyuandev;

create table app_role
(
    `id`          bigint                             not null auto_increment comment '主键ID',
    `role_name`   varchar(30)                        not null comment '角色名称',
    `role_key`    varchar(100)                       not null comment '角色权限字符串',
    `order_num`   int(4)   default 0                 not null comment '显示顺序',
    `data_scope`  char(1)  default '1'               not null comment '数据范围（1：全部数据权限 2：自定数据权限）',
    `status`      char(1)  default '0'               not null comment '角色状态（0正常 1停用）',
    `create_dept` bigint                             null comment '创建部门',
    `remark`      text                               null comment '备注',
    `create_by`   bigint                             null comment '创建者',
    `update_by`   bigint                             null comment '更新者',
    `create_time` datetime default CURRENT_TIMESTAMP null comment '创建时间',
    `update_time` datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
    primary key (`id`) using btree
) collate = utf8mb4_unicode_ci comment = 'app角色';

create table app_menu
(
    `id`          bigint                                 not null auto_increment comment '主键ID',
    `menu_name`   varchar(50)                            not null comment '菜单名称',
    `parent_id`   bigint       default 0                 not null comment '父菜单ID',
    `order_num`   int(4)       default 0                 not null comment '显示顺序',
    `path`        varchar(200) default ''                not null comment '路由地址',
    `component`   varchar(255)                           null comment '组件路径',
    `query_param` varchar(255)                           null comment '路由参数',
    `menu_type`   char(1)                                not null comment '菜单类型（M目录 C菜单 F按钮）',
    `visible`     char(1)      default '0'               not null comment '显示状态（0显示 1隐藏）',
    `status`      char(1)      default '0'               not null comment '菜单状态（0正常 1停用）',
    `perms`       varchar(100)                           null comment '权限标识',
    `icon`        varchar(100) default '#'               not null comment '菜单图标',
    `create_dept` bigint                                 null comment '创建部门',
    `remark`      text                                   null comment '备注',
    `create_by`   bigint                                 null comment '创建者',
    `update_by`   bigint                                 null comment '更新者',
    `create_time` datetime     default CURRENT_TIMESTAMP null comment '创建时间',
    `update_time` datetime     default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',
    primary key (`id`) using btree
) collate = utf8mb4_unicode_ci comment = 'app菜单';

create table app_user_role
(
    user_id bigint not null comment '用户ID',
    role_id bigint not null comment '角色ID',
    primary key (user_id, role_id)
) collate = utf8mb4_unicode_ci comment = 'app用户和角色关联';

create table app_role_menu
(
    role_id bigint not null comment '角色ID',
    menu_id bigint not null comment '菜单ID',
    primary key (role_id, menu_id)
) collate = utf8mb4_unicode_ci comment = 'app角色和菜单关联';
