perm.sql 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. SET NAMES utf8mb4;
  2. SET
  3. FOREIGN_KEY_CHECKS = 0;
  4. -- ----------------------------
  5. -- Table structure for sys_product
  6. -- 产品表:所有权限、角色、用户归属的顶层作用域
  7. -- ----------------------------
  8. CREATE TABLE IF NOT EXISTS `sys_product` (
  9. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  10. `code` varchar(64) NOT NULL DEFAULT '' COMMENT '产品编码(唯一标识)',
  11. `name` varchar(64) NOT NULL DEFAULT '' COMMENT '产品名称',
  12. `appKey` varchar(64) NOT NULL DEFAULT '' COMMENT '产品接入密钥',
  13. `appSecret` varchar(128) NOT NULL DEFAULT '' COMMENT '产品接入签名密钥',
  14. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  15. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  16. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  17. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  18. PRIMARY KEY (`id`),
  19. UNIQUE KEY `uk_code` (`code`) USING BTREE,
  20. UNIQUE KEY `uk_app_key` (`appKey`) USING BTREE
  21. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  22. -- ----------------------------
  23. -- Table structure for sys_dept
  24. -- 部门表:树形组织架构,实现跨部门管理隔离
  25. -- ----------------------------
  26. CREATE TABLE IF NOT EXISTS `sys_dept` (
  27. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  28. `parentId` bigint NOT NULL DEFAULT '0' COMMENT '父部门ID,0表示顶级部门',
  29. `name` varchar(64) NOT NULL DEFAULT '' COMMENT '部门名称',
  30. `path` varchar(512) NOT NULL DEFAULT '' COMMENT '层级路径,如 /1/3/7/ 用于快速判断祖先关系',
  31. `sort` int NOT NULL DEFAULT '0' COMMENT '排序值',
  32. `deptType` varchar(16) NOT NULL DEFAULT 'NORMAL' COMMENT '部门类型 NORMAL普通 DEV研发',
  33. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  34. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  35. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  36. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  37. PRIMARY KEY (`id`),
  38. KEY `idx_parent` (`parentId`) USING BTREE
  39. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  40. -- ----------------------------
  41. -- Table structure for sys_perm
  42. -- 权限表
  43. -- ----------------------------
  44. CREATE TABLE IF NOT EXISTS `sys_perm` (
  45. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  46. `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '所属产品编码',
  47. `name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '权限名',
  48. `code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '权限code',
  49. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  50. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  51. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  52. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  53. PRIMARY KEY (`id`),
  54. UNIQUE KEY `uk_product_code` (`productCode`, `code`) USING BTREE
  55. ) ENGINE = InnoDB AUTO_INCREMENT = 14955 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  56. -- ----------------------------
  57. -- Table structure for sys_role
  58. -- 角色表
  59. -- ----------------------------
  60. CREATE TABLE IF NOT EXISTS `sys_role` (
  61. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  62. `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '所属产品编码',
  63. `name` varchar(64) NOT NULL DEFAULT '' COMMENT '角色名',
  64. `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '备注',
  65. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  66. `permsLevel` int NOT NULL DEFAULT '0' COMMENT '权限等级,值越大权限越小,用于上下级管控',
  67. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  68. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  69. PRIMARY KEY (`id`),
  70. UNIQUE KEY `uk_product_name` (`productCode`, `name`) USING BTREE
  71. ) ENGINE = InnoDB AUTO_INCREMENT = 12 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  72. -- ----------------------------
  73. -- Table structure for sys_role_perm
  74. -- 角色-权限关联表
  75. -- ----------------------------
  76. CREATE TABLE IF NOT EXISTS `sys_role_perm` (
  77. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  78. `roleId` bigint NOT NULL COMMENT '角色ID',
  79. `permId` bigint NOT NULL COMMENT '权限ID',
  80. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  81. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  82. PRIMARY KEY (`id`),
  83. UNIQUE KEY `uk_role_perm` (`roleId`, `permId`) USING BTREE
  84. ) ENGINE = InnoDB AUTO_INCREMENT = 3346 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  85. -- ----------------------------
  86. -- Table structure for sys_user
  87. -- 用户表
  88. -- ----------------------------
  89. CREATE TABLE IF NOT EXISTS `sys_user` (
  90. `id` bigint NOT NULL AUTO_INCREMENT,
  91. `username` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '登录名',
  92. `password` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '登录密码',
  93. `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '昵称',
  94. `avatar` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '头像',
  95. `email` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '邮箱',
  96. `phone` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT '' COMMENT '手机号',
  97. `remark` varchar(255) DEFAULT '' COMMENT '备注',
  98. `deptId` bigint NOT NULL DEFAULT '0' COMMENT '所属部门ID',
  99. `isSuperAdmin` tinyint(1) NOT NULL DEFAULT '2' COMMENT '是否为超级管理员 1是 2否',
  100. `mustChangePassword` tinyint(1) NOT NULL DEFAULT '2' COMMENT '是否需要强制修改密码 1是 2否',
  101. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1正常 2冻结',
  102. `tokenVersion` bigint NOT NULL DEFAULT 0 COMMENT 'Token版本号,修改密码/冻结时递增',
  103. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  104. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  105. PRIMARY KEY (`id`) USING BTREE,
  106. UNIQUE KEY `uk_username` (`username`) USING BTREE,
  107. KEY `idx_dept` (`deptId`) USING BTREE
  108. ) ENGINE = InnoDB AUTO_INCREMENT = 10 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  109. -- ----------------------------
  110. -- Table structure for sys_product_member
  111. -- 产品成员表:将用户与产品关联,并标记成员类型
  112. -- memberType 决定自动权限行为:
  113. -- DEVELOPER = 开发者,自动拥有该产品所有权限
  114. -- ADMIN = 管理员,自动拥有该产品所有权限
  115. -- MEMBER = 普通成员,权限由角色和用户权限表决定
  116. -- 管理层级顺序:超级管理员 > ADMIN > DEVELOPER > MEMBER
  117. -- ----------------------------
  118. CREATE TABLE IF NOT EXISTS `sys_product_member` (
  119. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  120. `productCode` varchar(64) NOT NULL DEFAULT '' COMMENT '产品编码',
  121. `userId` bigint NOT NULL COMMENT '用户ID',
  122. `memberType` enum('DEVELOPER', 'ADMIN', 'MEMBER') NOT NULL DEFAULT 'MEMBER' COMMENT '成员类型',
  123. `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1启用 2禁用',
  124. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  125. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  126. PRIMARY KEY (`id`),
  127. UNIQUE KEY `uk_product_user` (`productCode`, `userId`) USING BTREE,
  128. KEY `idx_user` (`userId`) USING BTREE
  129. ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  130. -- ----------------------------
  131. -- Table structure for sys_user_perm
  132. -- 用户-权限关联表
  133. -- ----------------------------
  134. CREATE TABLE IF NOT EXISTS `sys_user_perm` (
  135. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  136. `userId` bigint NOT NULL COMMENT '用户ID',
  137. `permId` bigint NOT NULL COMMENT '权限ID',
  138. `effect` enum('ALLOW', 'DENY') NOT NULL DEFAULT 'ALLOW' COMMENT '权限控制策略 ALLOW允许 DENY拒绝',
  139. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  140. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  141. PRIMARY KEY (`id`) USING BTREE,
  142. UNIQUE KEY `uk_user_perm` (`userId`, `permId`) USING BTREE,
  143. KEY `idx_user_effect` (`userId`, `effect`)
  144. ) ENGINE = InnoDB AUTO_INCREMENT = 58 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  145. -- ----------------------------
  146. -- Table structure for sys_user_role
  147. -- 用户-角色关联表
  148. -- ----------------------------
  149. CREATE TABLE IF NOT EXISTS `sys_user_role` (
  150. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  151. `userId` bigint NOT NULL COMMENT '用户ID',
  152. `roleId` bigint NOT NULL COMMENT '角色ID',
  153. `createTime` int NOT NULL DEFAULT '0' COMMENT '创建时间',
  154. `updateTime` int NOT NULL DEFAULT '0' COMMENT '修改时间',
  155. PRIMARY KEY (`id`),
  156. UNIQUE KEY `uk_user_role` (`userId`, `roleId`) USING BTREE,
  157. KEY `idx_role` (`roleId`) USING BTREE
  158. ) ENGINE = InnoDB AUTO_INCREMENT = 7 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
  159. SET
  160. FOREIGN_KEY_CHECKS = 1;