SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for sys_product -- 产品表:所有权限、角色、用户归属的顶层作用域 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_product` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `code` varchar(64) NOT NULL DEFAULT '' COMMENT '产品编码(唯一标识)', `name` varchar(64) NOT NULL DEFAULT '' COMMENT '产品名称', `appKey` varchar(64) NOT NULL DEFAULT '' COMMENT '产品接入密钥', `appSecret` varchar(128) NOT NULL DEFAULT '' COMMENT '产品接入签名密钥', `remark` varchar(255) DEFAULT '' COMMENT '备注', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_code` (`code`) USING BTREE, UNIQUE KEY `uk_app_key` (`appKey`) USING BTREE ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_dept -- 部门表:树形组织架构,实现跨部门管理隔离 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_dept` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `parentId` bigint NOT NULL DEFAULT '0' COMMENT '父部门ID,0表示顶级部门', `name` varchar(64) NOT NULL DEFAULT '' COMMENT '部门名称', `path` varchar(512) NOT NULL DEFAULT '' COMMENT '层级路径,如 /1/3/7/ 用于快速判断祖先关系', `sort` int NOT NULL DEFAULT '0' COMMENT '排序值', `deptType` varchar(16) NOT NULL DEFAULT 'NORMAL' COMMENT '部门类型 NORMAL普通 DEV研发', `remark` varchar(255) DEFAULT '' COMMENT '备注', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`), KEY `idx_parent` (`parentId`) USING BTREE ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_perm -- 权限表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_perm` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '所属产品编码', `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '权限名', `code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '权限code', `remark` varchar(255) DEFAULT '' COMMENT '备注', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_product_code` (`productCode`, `code`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 14955 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_role -- 角色表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_role` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '所属产品编码', `name` varchar(64) NOT NULL DEFAULT '' COMMENT '角色名', `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '备注', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用', `permsLevel` int NOT NULL DEFAULT '0' COMMENT '权限等级,值越大权限越小,用于上下级管控', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_product_name` (`productCode`, `name`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 12 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_role_perm -- 角色-权限关联表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_role_perm` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `roleId` bigint NOT NULL COMMENT '角色ID', `permId` bigint NOT NULL COMMENT '权限ID', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_role_perm` (`roleId`, `permId`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 3346 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_user -- 用户表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_user` ( `id` bigint NOT NULL AUTO_INCREMENT, `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '登录名', `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '登录密码', `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '昵称', `avatar` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '头像', `email` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '邮箱', `phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '手机号', `remark` varchar(255) DEFAULT '' COMMENT '备注', `deptId` bigint NOT NULL DEFAULT '0' COMMENT '所属部门ID', `isSuperAdmin` tinyint(1) NOT NULL DEFAULT '2' COMMENT '是否为超级管理员 1是 2否', `mustChangePassword` tinyint(1) NOT NULL DEFAULT '2' COMMENT '是否需要强制修改密码 1是 2否', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1正常 2冻结', `tokenVersion` bigint NOT NULL DEFAULT 0 COMMENT 'Token版本号,修改密码/冻结时递增', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_username` (`username`) USING BTREE, KEY `idx_dept` (`deptId`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 10 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_product_member -- 产品成员表:将用户与产品关联,并标记成员类型 -- memberType 决定自动权限行为: -- DEVELOPER = 开发者,自动拥有该产品所有权限 -- ADMIN = 管理员,自动拥有该产品所有权限 -- MEMBER = 普通成员,权限由角色和用户权限表决定 -- 管理层级顺序:超级管理员 > ADMIN > DEVELOPER > MEMBER -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_product_member` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '产品编码', `userId` bigint NOT NULL COMMENT '用户ID', `memberType` enum('DEVELOPER', 'ADMIN', 'MEMBER') NOT NULL DEFAULT 'MEMBER' COMMENT '成员类型', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_product_user` (`productCode`, `userId`) USING BTREE, KEY `idx_user` (`userId`) USING BTREE ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_user_perm -- 用户-权限关联表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_user_perm` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `userId` bigint NOT NULL COMMENT '用户ID', `permId` bigint NOT NULL COMMENT '权限ID', `effect` enum('ALLOW', 'DENY') NOT NULL DEFAULT 'ALLOW' COMMENT '权限控制策略 ALLOW允许 DENY拒绝', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_user_perm` (`userId`, `permId`) USING BTREE, KEY `idx_user_effect` (`userId`, `effect`) ) ENGINE = InnoDB AUTO_INCREMENT = 58 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; -- ---------------------------- -- Table structure for sys_user_role -- 用户-角色关联表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `sys_user_role` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', `userId` bigint NOT NULL COMMENT '用户ID', `roleId` bigint NOT NULL COMMENT '角色ID', `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间', `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_user_role` (`userId`, `roleId`) USING BTREE, KEY `idx_role` (`roleId`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 7 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci; SET FOREIGN_KEY_CHECKS = 1;