schema_guide.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. -- =====================================================
  2. -- 成长规划师注册与升级系统数据库表
  3. -- version: 1.1
  4. -- date: 2026-05-05
  5. -- =====================================================
  6. -- 成长规划师申请表(注册/升级申请)
  7. CREATE TABLE IF NOT EXISTS `guide_applications` (
  8. `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
  9. `user_id` BIGINT NOT NULL COMMENT '申请人用户ID',
  10. `type` VARCHAR(20) NOT NULL DEFAULT 'new_apply' COMMENT '申请类型: new_apply-新注册, upgrade-升级',
  11. `target_level` VARCHAR(20) NOT NULL COMMENT '目标等级: junior-初级, intermediate-中级, senior-高级',
  12. `current_level` VARCHAR(20) DEFAULT NULL COMMENT '当前等级(升级时填写)',
  13. `package_id` BIGINT COMMENT '申请的套餐ID',
  14. `payment_proof` VARCHAR(500) COMMENT '付款凭证URL',
  15. `payment_amount` INT COMMENT '付款金额(分)',
  16. `status` VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '状态: pending-待审核, approved-已通过, rejected-已拒绝',
  17. `reject_reason` VARCHAR(500) COMMENT '拒绝原因',
  18. `reviewed_at` DATETIME COMMENT '审核时间',
  19. `reviewed_by` BIGINT COMMENT '审核人ID',
  20. `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  21. `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  22. INDEX `idx_user_id` (`user_id`),
  23. INDEX `idx_status` (`status`),
  24. INDEX `idx_type` (`type`)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成长规划师申请表';
  26. -- 成长规划师表(已认证的规划师)
  27. CREATE TABLE IF NOT EXISTS `guides` (
  28. `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
  29. `user_id` BIGINT NOT NULL UNIQUE COMMENT '用户ID(唯一)',
  30. `level` VARCHAR(20) NOT NULL DEFAULT 'junior' COMMENT '等级: junior-初级, intermediate-中级, senior-高级',
  31. `status` VARCHAR(20) NOT NULL DEFAULT 'active' COMMENT '状态: active-活跃, inactive-停用',
  32. `service_count` INT DEFAULT 0 COMMENT '当前服务家庭数',
  33. `package_id` BIGINT COMMENT '购买套餐ID',
  34. `nickname` VARCHAR(100) COMMENT '规划师昵称',
  35. `phone` VARCHAR(20) COMMENT '联系电话',
  36. `intro` TEXT COMMENT '个人介绍',
  37. `avatar` VARCHAR(500) COMMENT '头像URL',
  38. `commission_rate` INT DEFAULT 1000 COMMENT '佣金比例(基点,1000=10%)',
  39. `approved_at` DATETIME COMMENT '审核通过时间',
  40. `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  41. `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  42. INDEX `idx_user_id` (`user_id`),
  43. INDEX `idx_level` (`level`),
  44. INDEX `idx_status` (`status`)
  45. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成长规划师表';
  46. -- 升级服务表(可供购买的升级服务)
  47. CREATE TABLE IF NOT EXISTS `upgrade_services` (
  48. `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
  49. `from_level` VARCHAR(20) NOT NULL COMMENT '原等级: junior, intermediate, senior',
  50. `to_level` VARCHAR(20) NOT NULL COMMENT '目标等级: junior, intermediate, senior',
  51. `name` VARCHAR(100) NOT NULL COMMENT '服务名称',
  52. `description` TEXT COMMENT '描述',
  53. `price` INT NOT NULL COMMENT '价格(分)',
  54. `service_months` INT DEFAULT 12 COMMENT '服务期限(月)',
  55. `service_limit_add` INT DEFAULT 0 COMMENT '额外增加的服务名额',
  56. `is_active` TINYINT DEFAULT 1 COMMENT '是否上架: 0-否, 1-是',
  57. `sort_order` INT DEFAULT 0 COMMENT '排序',
  58. `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  59. `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  60. UNIQUE KEY `uk_from_to` (`from_level`, `to_level`),
  61. INDEX `idx_from_level` (`from_level`),
  62. INDEX `idx_is_active` (`is_active`)
  63. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='升级服务表';
  64. -- 规划师套餐表(管理员配置的套餐模板)
  65. CREATE TABLE IF NOT EXISTS `guide_package_templates` (
  66. `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
  67. `name` VARCHAR(100) NOT NULL COMMENT '套餐名称',
  68. `level` VARCHAR(20) NOT NULL COMMENT '等级: junior, intermediate, senior',
  69. `price` INT NOT NULL COMMENT '价格(分)',
  70. `min_price` INT COMMENT '最低价(分)',
  71. `description` TEXT COMMENT '套餐描述',
  72. `service_months` INT DEFAULT 12 COMMENT '服务期限(月)',
  73. `service_limit` INT DEFAULT 50 COMMENT '服务名额限制',
  74. `features` JSON COMMENT '功能权限列表',
  75. `is_active` TINYINT DEFAULT 1 COMMENT '是否上架: 0-否, 1-是',
  76. `sort_order` INT DEFAULT 0 COMMENT '排序',
  77. `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  78. `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  79. INDEX `idx_level` (`level`),
  80. INDEX `idx_is_active` (`is_active`)
  81. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='规划师套餐模板表';
  82. -- 规划师-家庭关联表
  83. CREATE TABLE IF NOT EXISTS `guide_family_relations` (
  84. `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
  85. `guide_id` BIGINT NOT NULL COMMENT '规划师ID',
  86. `family_id` BIGINT NOT NULL COMMENT '家庭ID',
  87. `service_type` VARCHAR(50) DEFAULT 'basic' COMMENT '服务类型: basic-基础, premium-高级',
  88. `service_price` INT DEFAULT 0 COMMENT '服务价格(分)',
  89. `status` VARCHAR(20) DEFAULT 'active' COMMENT '状态: active-服务中, paused-已暂停',
  90. `bound_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '绑定时间',
  91. `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  92. `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  93. UNIQUE KEY `uk_guide_family` (`guide_id`, `family_id`),
  94. INDEX `idx_guide_id` (`guide_id`),
  95. INDEX `idx_family_id` (`family_id`)
  96. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='规划师-家庭关联表';
  97. CREATE TABLE IF NOT EXISTS `guide_invite_codes` (
  98. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  99. `guide_id` BIGINT NOT NULL COMMENT '成长规划师ID',
  100. `code` VARCHAR(20) NOT NULL COMMENT '邀请码',
  101. `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1-有效,0-已失效',
  102. `use_count` INT NOT NULL DEFAULT 0 COMMENT '使用次数',
  103. `max_use_count` INT NOT NULL DEFAULT 100 COMMENT '最大使用次数',
  104. `expire_time` DATETIME COMMENT '过期时间',
  105. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  106. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  107. PRIMARY KEY (`id`),
  108. UNIQUE KEY `uk_code` (`code`),
  109. KEY `idx_guide_id` (`guide_id`),
  110. KEY `idx_status` (`status`)
  111. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成长规划师邀请码表';
  112. -- 成长规划师层级关系表
  113. CREATE TABLE IF NOT EXISTS `guide_hierarchy` (
  114. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  115. `parent_id` BIGINT NOT NULL COMMENT '上级成长规划师ID',
  116. `child_id` BIGINT NOT NULL COMMENT '下级成长规划师ID',
  117. `level` INT NOT NULL DEFAULT 1 COMMENT '层级深度:1-直接下级,2-二级下级,以此类推',
  118. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  119. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  120. PRIMARY KEY (`id`),
  121. UNIQUE KEY `uk_parent_child` (`parent_id`, `child_id`),
  122. KEY `idx_child_id` (`child_id`),
  123. KEY `idx_level` (`level`)
  124. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成长规划师层级关系表';
  125. -- 成长规划师套餐表
  126. CREATE TABLE IF NOT EXISTS `guide_packages` (
  127. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  128. `guide_id` BIGINT NOT NULL COMMENT '成长规划师ID',
  129. `package_id` BIGINT NOT NULL COMMENT '套餐ID',
  130. `price` INT NOT NULL COMMENT '成长规划师定价(分)',
  131. `commission_rate` INT NOT NULL DEFAULT 0 COMMENT '上级佣金比例(基点)',
  132. `status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1-上架,0-下架',
  133. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  134. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  135. PRIMARY KEY (`id`),
  136. UNIQUE KEY `uk_guide_package` (`guide_id`, `package_id`),
  137. KEY `idx_package_id` (`package_id`),
  138. KEY `idx_status` (`status`)
  139. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成长规划师套餐表';
  140. -- 订单表
  141. CREATE TABLE IF NOT EXISTS `orders` (
  142. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  143. `order_no` VARCHAR(32) NOT NULL COMMENT '订单号',
  144. `user_id` BIGINT NOT NULL COMMENT '用户ID',
  145. `guide_id` BIGINT COMMENT '成长规划师ID',
  146. `package_id` BIGINT NOT NULL COMMENT '套餐ID',
  147. `package_name` VARCHAR(100) NOT NULL COMMENT '套餐名称',
  148. `amount` INT NOT NULL COMMENT '订单金额(分)',
  149. `status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0-待支付,1-已支付,2-已取消,3-已退款',
  150. `payment_method` VARCHAR(20) COMMENT '支付方式:wechat-微信支付,alipay-支付宝',
  151. `payment_time` DATETIME COMMENT '支付时间',
  152. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  153. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  154. PRIMARY KEY (`id`),
  155. UNIQUE KEY `uk_order_no` (`order_no`),
  156. KEY `idx_user_id` (`user_id`),
  157. KEY `idx_guide_id` (`guide_id`),
  158. KEY `idx_status` (`status`)
  159. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
  160. -- 支付记录表
  161. CREATE TABLE IF NOT EXISTS `payment_records` (
  162. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  163. `order_no` VARCHAR(32) NOT NULL COMMENT '订单号',
  164. `transaction_id` VARCHAR(64) COMMENT '第三方交易号',
  165. `payment_method` VARCHAR(20) NOT NULL COMMENT '支付方式:wechat-微信支付,alipay-支付宝',
  166. `amount` INT NOT NULL COMMENT '支付金额(分)',
  167. `status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0-待支付,1-支付成功,2-支付失败',
  168. `notify_time` DATETIME COMMENT '回调时间',
  169. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  170. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  171. PRIMARY KEY (`id`),
  172. UNIQUE KEY `uk_order_no` (`order_no`),
  173. KEY `idx_transaction_id` (`transaction_id`),
  174. KEY `idx_status` (`status`)
  175. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';
  176. -- 测评预约表
  177. CREATE TABLE IF NOT EXISTS `assessment_appointments` (
  178. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  179. `user_id` BIGINT NOT NULL COMMENT '用户ID',
  180. `child_id` BIGINT COMMENT '孩子ID',
  181. `guide_id` BIGINT NOT NULL COMMENT '成长规划师ID',
  182. `package_id` BIGINT NOT NULL COMMENT '套餐ID',
  183. `appointment_date` DATE NOT NULL COMMENT '预约日期',
  184. `appointment_time` VARCHAR(20) NOT NULL COMMENT '预约时间段',
  185. `status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0-待确认,1-已确认,2-已完成,3-已取消',
  186. `remark` VARCHAR(500) COMMENT '备注',
  187. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  188. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  189. PRIMARY KEY (`id`),
  190. KEY `idx_user_id` (`user_id`),
  191. KEY `idx_guide_id` (`guide_id`),
  192. KEY `idx_appointment_date` (`appointment_date`),
  193. KEY `idx_status` (`status`)
  194. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测评预约表';
  195. -- 测评结果表
  196. CREATE TABLE IF NOT EXISTS `assessment_results` (
  197. `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  198. `appointment_id` BIGINT COMMENT '预约ID',
  199. `user_id` BIGINT NOT NULL COMMENT '用户ID',
  200. `child_id` BIGINT COMMENT '孩子ID',
  201. `child_name` VARCHAR(50) COMMENT '孩子姓名',
  202. `guide_id` BIGINT NOT NULL COMMENT '成长规划师ID',
  203. `guide_name` VARCHAR(50) COMMENT '成长规划师姓名',
  204. `assessment_date` DATE NOT NULL COMMENT '测评日期',
  205. `duration_minutes` INT COMMENT '测评时长(分钟)',
  206. `attention_score` INT COMMENT '注意力得分',
  207. `focus_score` INT COMMENT '专注力得分',
  208. `memory_score` INT COMMENT '记忆力得分',
  209. `logic_score` INT COMMENT '逻辑思维得分',
  210. `overall_score` INT COMMENT '综合得分',
  211. `analysis_report` TEXT COMMENT '分析报告',
  212. `growth_suggestions` TEXT COMMENT '成长建议',
  213. `next_review_date` DATE COMMENT '下次复测日期',
  214. `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  215. `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  216. PRIMARY KEY (`id`),
  217. KEY `idx_user_id` (`user_id`),
  218. KEY `idx_guide_id` (`guide_id`),
  219. KEY `idx_assessment_date` (`assessment_date`)
  220. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测评结果表';