-- 用户表 CREATE TABLE IF NOT EXISTS `user` ( `id` int UNSIGNED AUTO_INCREMENT COMMENT '用户id' , `account` varchar(64) NOT NULL COMMENT '用户账号', `name` varchar(255) DEFAULT '' COMMENT '姓名', `mobile` varchar(64) DEFAULT NULL COMMENT '手机', `email` varchar(64) DEFAULT NULL COMMENT '邮箱', `pwd` varchar(255) DEFAULT NULL COMMENT '密码', `salt` varchar(32) NOT NULL COMMENT '盐', `sex` TINYINT DEFAULT 0 COMMENT '性别:0-女,1-男', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_account`(`account`), UNIQUE KEY `uk_mobile`(`mobile`), UNIQUE KEY `uk_email`(`email`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户表'; -- 组织表 CREATE TABLE IF NOT EXISTS `organization` ( `id` int UNSIGNED AUTO_INCREMENT COMMENT 'id', `name` VARCHAR(256) NOT NULL COMMENT '组织名', `parent_id` int UNSIGNED DEFAULT 0 COMMENT '上级组织id', `sort` SMALLINT UNSIGNED DEFAULT 0 COMMENT '层级序号', `status` TINYINT DEFAULT 1 COMMENT '状态:0-无效,1-有效', `path` VARCHAR(1024) COMMENT '全路径', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`), KEY `idx_path`(`path`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='组织表'; -- 用户组织表 CREATE TABLE IF NOT EXISTS `user_organization` ( `id` int UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'id', `user_id` int UNSIGNED NOT NULL COMMENT '用户id', `org_id` int UNSIGNED NOT NULL COMMENT '组织id', `leader` bool DEFAULT FALSE COMMENT '是否是组织领导:一个组织只能有一个领导人', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`), KEY `idx_user_id`(`user_id`), KEY `idx_org_id`(`org_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户组织表'; -- 角色表 CREATE TABLE IF NOT EXISTS `role` ( `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id' , `name` VARCHAR(255) NOT NULL COMMENT '名称', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='表'; -- 组织角色表 CREATE TABLE IF NOT EXISTS `organization_role` ( `id` int UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'id', `org_id` int UNSIGNED NOT NULL COMMENT '组织id', `role_id` int UNSIGNED NOT NULL COMMENT '角色id', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`), KEY `idx_org_id`(`org_id`), KEY `idx_role_id`(`role_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='组织角色表'; -- 组织角色授权表 CREATE TABLE IF NOT EXISTS `organization_role_author`( `id` int UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'id', `org_id` int UNSIGNED NOT NULL COMMENT '组织id', `role_id` int UNSIGNED NOT NULL COMMENT '角色id', `option` TINYINT NOT NULL DEFAULT 0 COMMENT '选择:0-选择组织,1-选择组织含下级', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`), KEY `idx_org_id`(`org_id`), KEY `idx_role_id`(`role_id`) )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='组织角色授权表'; -- 应用表 CREATE TABLE IF NOT EXISTS `application`( `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id' , `code` VARCHAR(64) NOT NULL COMMENT 'code' , `secret` VARCHAR(64) NOT NULL COMMENT 'secret' , `name` VARCHAR(64) NOT NULL COMMENT 'name' , `description` VARCHAR(512) DEFAULT '' COMMENT '描述' , `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='应用表'; -- 菜单表 CREATE TABLE IF NOT EXISTS `menu`( `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'id' , `app_code` VARCHAR(64) NOT NULL COMMENT '应用code', `code` varchar(512) NOT NULL DEFAULT '' COMMENT '编码', `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称', `parent_code` varchar(64) NOT NULL DEFAULT '' COMMENT '父级菜单编码', `type` int(5) NOT NULL DEFAULT 0 COMMENT '类型(1:一级导航;2:二级导航;3:三级导航)', `order` int(5) NOT NULL DEFAULT 0 COMMENT '排序', `icon` varchar(255) NOT NULL DEFAULT '' COMMENT '图标', `path` varchar(512) NOT NULL DEFAULT '' COMMENT '访问路径', `child_path` varchar(255) NOT NULL DEFAULT '' COMMENT '子级路径(前端用)', `go_first_child` tinyint(1) NOT NULL DEFAULT 0 COMMENT '前端用', `is_show` int(5) NOT NULL DEFAULT 0 COMMENT '是否显示(0:否;1:是)', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户表'; -- 角色菜单权限表 CREATE TABLE IF NOT EXISTS `role_menu_permission`( `id` int UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'id' , `menu_id` int UNSIGNED NOT NULL COMMENT '菜单id', `role_id` int UNSIGNED NOT NULL COMMENT '角色id', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='角色菜单权限表'; -- 职位表 CREATE TABLE IF NOT EXISTS `post`( `id` int UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'id' , `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='职位表'; -- 用户信息 CREATE TABLE IF NOT EXISTS `user_info`( `id` int UNSIGNED AUTO_INCREMENT NOT NULL COMMENT 'id' , `user_id` int UNSIGNED COMMENT '用户id' , `avator` VARCHAR(512) COMMENT '头像', `created_by` VARCHAR(64) DEFAULT '' COMMENT '创建人', `created_on` DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '记录创建时间', `modified_by` VARCHAR(64) DEFAULT '' COMMENT '修改人', `modified_on` DATETIME DEFAULT CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP COMMENT '记录修改时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3 COMMENT='用户信息表';