-- 用户表 CREATE TABLE `admin_user` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', /* 业务字段开始 */ `username` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名', `password` varchar(255) NOT NULL DEFAULT '' COMMENT '密码', `real_name` varchar(50) NOT NULL DEFAULT '' COMMENT '真实姓名', `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0-禁用,1-启用', /* 业务字段结束 */ PRIMARY KEY (`id`), UNIQUE KEY `uk_real_name` (`real_name`), UNIQUE KEY `uk_username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='管理员用户表'; -- 角色表 CREATE TABLE `admin_role` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', /* 业务字段开始 */ `role_name` varchar(50) NOT NULL DEFAULT '' COMMENT '角色名称', `role_code` varchar(50) NOT NULL DEFAULT '' COMMENT '角色编码', `description` varchar(255) NOT NULL DEFAULT '' COMMENT '角色描述', `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0-禁用,1-启用', `sort` int NOT NULL DEFAULT '0' COMMENT '排序', /* 业务字段结束 */ PRIMARY KEY (`id`), UNIQUE KEY `uk_role_code` (`role_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色表'; -- 菜单表 CREATE TABLE `admin_menu` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', /* 业务字段开始 */ `pid` bigint NOT NULL DEFAULT '0' COMMENT '父菜单ID', `name` varchar(100) NOT NULL DEFAULT '' COMMENT '路由名称', `path` varchar(255) NOT NULL DEFAULT '' COMMENT '路由路径', `component` varchar(255) NOT NULL DEFAULT '' COMMENT '组件路径', `redirect` varchar(255) DEFAULT NULL COMMENT '重定向路径', /* Meta配置JSON字段 */ `meta` json NOT NULL COMMENT '路由元数据配置', /* 附加信息 */ `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用, 1-启用', `type` tinyint NOT NULL DEFAULT '0' COMMENT '类型: 0-目录, 1-菜单, 2-按钮', `sort` int NOT NULL DEFAULT '0' COMMENT '排序号', /* 业务字段结束 */ PRIMARY KEY (`id`), UNIQUE KEY `uk_name_path` (`name`, `path`), KEY `idx_pid` (`pid`) COMMENT '优化层级查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='菜单表'; -- 接口表 CREATE TABLE `admin_api` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', /* 业务字段开始 */ `api_name` varchar(100) NOT NULL DEFAULT '' COMMENT '接口名称', `api_code` varchar(100) NOT NULL DEFAULT '' COMMENT '接口编码', `method` varchar(10) NOT NULL DEFAULT '' COMMENT '请求方法:GET、POST等', `url` varchar(255) NOT NULL DEFAULT '' COMMENT '接口URL', `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0-禁用,1-启用', `description` varchar(255) NOT NULL DEFAULT '' COMMENT '接口描述', /* 业务字段结束 */ PRIMARY KEY (`id`), UNIQUE KEY `uk_api_code` (`api_code`), KEY `idx_url_method` (`url`, `method`) COMMENT '优化接口查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='接口表'; -- 用户角色关联表 CREATE TABLE `admin_user_role` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', /* 业务字段开始 */ /* 关联字段 - 软关联 */ `user_id` bigint NOT NULL DEFAULT '0' COMMENT '关联到用户表的id', `role_id` bigint NOT NULL DEFAULT '0' COMMENT '关联到角色表的id', /* 业务字段结束 */ PRIMARY KEY (`id`), UNIQUE KEY `uk_user_role` (`user_id`, `role_id`), KEY `idx_user_id` (`user_id`) COMMENT '优化用户查询', KEY `idx_role_id` (`role_id`) COMMENT '优化角色查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户角色关联表'; -- 角色菜单关联表 CREATE TABLE `admin_role_menu` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', /* 业务字段开始 */ /* 关联字段 - 软关联 */ `role_id` bigint NOT NULL DEFAULT '0' COMMENT '关联到角色表的id', `menu_id` bigint NOT NULL DEFAULT '0' COMMENT '关联到菜单表的id', /* 业务字段结束 */ PRIMARY KEY (`id`), UNIQUE KEY `uk_role_menu` (`role_id`, `menu_id`), KEY `idx_role_id` (`role_id`) COMMENT '优化角色查询', KEY `idx_menu_id` (`menu_id`) COMMENT '优化菜单查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色菜单关联表'; -- 角色接口关联表 CREATE TABLE `admin_role_api` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', /* 业务字段开始 */ /* 关联字段 - 软关联 */ `role_id` bigint NOT NULL DEFAULT '0' COMMENT '关联到角色表的id', `api_id` bigint NOT NULL DEFAULT '0' COMMENT '关联到接口表的id', /* 业务字段结束 */ PRIMARY KEY (`id`), UNIQUE KEY `uk_role_api` (`role_id`, `api_id`), KEY `idx_role_id` (`role_id`) COMMENT '优化角色查询', KEY `idx_api_id` (`api_id`) COMMENT '优化接口查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='角色接口关联表'; -- 字典类型表 CREATE TABLE `admin_dict_type` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', `dict_type` varchar(50) NOT NULL COMMENT '字典类型编码', `dict_name` varchar(100) NOT NULL COMMENT '字典类型名称', `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0-禁用,1-启用', `remark` varchar(255) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`), UNIQUE KEY `uk_dict_type` (`dict_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字典类型表'; -- 字典数据表 CREATE TABLE `admin_dict_data` ( `id` bigint NOT NULL AUTO_INCREMENT, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT '0', `version` bigint NOT NULL DEFAULT '0' COMMENT '版本号', `dict_type` varchar(50) NOT NULL COMMENT '字典类型编码', `dict_label` varchar(100) NOT NULL COMMENT '字典标签', `dict_value` tinyint NOT NULL COMMENT '字典键值', `dict_sort` int NOT NULL DEFAULT '0' COMMENT '字典排序', `status` tinyint NOT NULL DEFAULT '1' COMMENT '状态:0-禁用,1-启用', `remark` varchar(255) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`), UNIQUE KEY `uk_type_value` (`dict_type`, `dict_value`), UNIQUE KEY `uk_type_label` (`dict_type`, `dict_label`), KEY `idx_dict_type` (`dict_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字典数据表';