schema_assessment.sql 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. -- DAN测评任务系统数据库
  2. -- 浠艾福
  3. -- 1. 测评资料表
  4. CREATE TABLE IF NOT EXISTS assessment_materials (
  5. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  6. title VARCHAR(100) NOT NULL COMMENT '资料标题',
  7. content TEXT COMMENT '测评介绍内容',
  8. cover_image VARCHAR(255) COMMENT '封面图片',
  9. status VARCHAR(20) DEFAULT 'active' COMMENT '状态:active/inactive',
  10. created_at DATETIME COMMENT '创建时间',
  11. updated_at DATETIME COMMENT '更新时间',
  12. INDEX idx_status (status)
  13. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测评资料表';
  14. -- 2. 积分设置表
  15. CREATE TABLE IF NOT EXISTS assessment_points_config (
  16. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  17. points_value INT DEFAULT 100 COMMENT '完成测评获得积分',
  18. points_value_yuan INT DEFAULT 1 COMMENT '1积分等于多少分(原元→现分)',
  19. is_active TINYINT DEFAULT 1 COMMENT '是否启用',
  20. created_at DATETIME COMMENT '创建时间',
  21. updated_at DATETIME COMMENT '更新时间'
  22. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分设置表';
  23. -- 初始化默认积分配置
  24. INSERT INTO assessment_points_config (points_value, points_value_yuan, is_active, created_at, updated_at)
  25. VALUES (100, 1, 1, NOW(), NOW());
  26. -- 3. 家庭测评配置表
  27. CREATE TABLE IF NOT EXISTS family_assessment_config (
  28. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  29. family_id BIGINT NOT NULL COMMENT '家庭ID',
  30. material_id BIGINT COMMENT '测评资料ID',
  31. remind_months INT DEFAULT 12 COMMENT '提醒周期(月)',
  32. last_remind_at DATETIME COMMENT '上次提醒时间',
  33. next_remind_at DATETIME COMMENT '下次提醒时间',
  34. is_enabled TINYINT DEFAULT 1 COMMENT '是否启用:1启用0关闭',
  35. created_by BIGINT COMMENT '创建人(规划师ID)',
  36. created_at DATETIME COMMENT '创建时间',
  37. updated_at DATETIME COMMENT '更新时间',
  38. UNIQUE KEY uk_family (family_id),
  39. INDEX idx_next_remind (next_remind_at),
  40. INDEX idx_enabled (is_enabled)
  41. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='家庭测评配置表';
  42. -- 4. 测评记录表
  43. CREATE TABLE IF NOT EXISTS assessment_records (
  44. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  45. family_id BIGINT COMMENT '家庭ID',
  46. child_id BIGINT COMMENT '孩子ID',
  47. material_id BIGINT COMMENT '测评资料ID',
  48. status VARCHAR(20) DEFAULT 'pending' COMMENT '状态:pending待完成/completed已完成',
  49. completed_at DATETIME COMMENT '完成时间',
  50. created_at DATETIME COMMENT '创建时间',
  51. INDEX idx_family (family_id),
  52. INDEX idx_status (status)
  53. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测评记录表';
  54. -- 5. 扩展任务模板表 - 添加系统任务字段
  55. ALTER TABLE admin_task_templates
  56. ADD COLUMN task_level VARCHAR(20) DEFAULT 'normal' COMMENT '任务级别:normal普通/system系统',
  57. ADD COLUMN is_system_task TINYINT DEFAULT 0 COMMENT '是否系统任务:0否1是',
  58. ADD COLUMN assessment_category VARCHAR(50) COMMENT '测评分类:DAN/其他',
  59. ADD COLUMN remind_months INT COMMENT '提醒周期(月)';
  60. -- 创建索引
  61. CREATE INDEX idx_task_level ON admin_task_templates(task_level);
  62. CREATE INDEX idx_is_system_task ON admin_task_templates(is_system_task);
  63. -- ============================================
  64. -- 认知常模表(百分位参考)
  65. -- ============================================
  66. CREATE TABLE IF NOT EXISTS cognitive_norms (
  67. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  68. dimension_key VARCHAR(50) NOT NULL COMMENT '维度键:perception/focus/memory/logic/spatial/processingSpeed',
  69. gender VARCHAR(10) DEFAULT 'all' COMMENT '性别:male/female/all',
  70. age_min INT NOT NULL COMMENT '最小月龄(含)',
  71. age_max INT NOT NULL COMMENT '最大月龄(不含)',
  72. percentile5 INT COMMENT '第5百分位分数',
  73. percentile25 INT COMMENT '第25百分位分数',
  74. percentile50 INT COMMENT '第50百分位分数(中位数)',
  75. percentile75 INT COMMENT '第75百分位分数',
  76. percentile95 INT COMMENT '第95百分位分数',
  77. source VARCHAR(100) DEFAULT 'DAN常模' COMMENT '数据来源',
  78. created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  79. INDEX idx_dimension_age (dimension_key, gender, age_min, age_max)
  80. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='认知维度百分位常模表';
  81. -- 种子数据: 6-12岁 各维度常模(年龄月: 72-144月, 性别: all)
  82. -- 感知能力
  83. INSERT INTO cognitive_norms (dimension_key, gender, age_min, age_max, percentile5, percentile25, percentile50, percentile75, percentile95, source) VALUES
  84. ('perception', 'all', 0, 84, 20, 35, 50, 65, 80, 'DAN常模'),
  85. ('perception', 'all', 84, 108, 25, 40, 55, 70, 85, 'DAN常模'),
  86. ('perception', 'all', 108, 144, 30, 45, 60, 75, 88, 'DAN常模'),
  87. ('perception', 'all', 144, 216, 35, 50, 65, 78, 90, 'DAN常模'),
  88. ('focus', 'all', 0, 84, 15, 28, 42, 55, 70, 'DAN常模'),
  89. ('focus', 'all', 84, 108, 20, 33, 48, 62, 78, 'DAN常模'),
  90. ('focus', 'all', 108, 144, 25, 38, 53, 68, 82, 'DAN常模'),
  91. ('focus', 'all', 144, 216, 30, 45, 58, 72, 85, 'DAN常模'),
  92. ('memory', 'all', 0, 84, 18, 32, 46, 60, 75, 'DAN常模'),
  93. ('memory', 'all', 84, 108, 22, 37, 52, 65, 80, 'DAN常模'),
  94. ('memory', 'all', 108, 144, 28, 42, 56, 70, 84, 'DAN常模'),
  95. ('memory', 'all', 144, 216, 32, 47, 60, 74, 86, 'DAN常模'),
  96. ('logic', 'all', 0, 84, 12, 25, 38, 52, 65, 'DAN常模'),
  97. ('logic', 'all', 84, 108, 18, 30, 45, 58, 72, 'DAN常模'),
  98. ('logic', 'all', 108, 144, 25, 38, 52, 65, 78, 'DAN常模'),
  99. ('logic', 'all', 144, 216, 30, 45, 58, 70, 82, 'DAN常模'),
  100. ('spatial', 'all', 0, 84, 15, 28, 40, 55, 70, 'DAN常模'),
  101. ('spatial', 'all', 84, 108, 20, 35, 48, 62, 76, 'DAN常模'),
  102. ('spatial', 'all', 108, 144, 28, 40, 55, 68, 80, 'DAN常模'),
  103. ('spatial', 'all', 144, 216, 32, 45, 58, 72, 84, 'DAN常模'),
  104. ('processingSpeed', 'all', 0, 84, 10, 22, 35, 48, 62, 'DAN常模'),
  105. ('processingSpeed', 'all', 84, 108, 15, 28, 42, 55, 70, 'DAN常模'),
  106. ('processingSpeed', 'all', 108, 144, 22, 35, 48, 62, 75, 'DAN常模'),
  107. ('processingSpeed', 'all', 144, 216, 28, 42, 55, 68, 80, 'DAN常模');
  108. -- ============================================
  109. -- 训练方案系统(guide端训练计划管理)
  110. -- ============================================
  111. CREATE TABLE IF NOT EXISTS training_plans (
  112. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  113. guide_id BIGINT NOT NULL COMMENT '规划师ID',
  114. child_id BIGINT NOT NULL COMMENT '孩子ID',
  115. title VARCHAR(200) NOT NULL COMMENT '方案标题',
  116. description TEXT COMMENT '方案描述',
  117. status VARCHAR(20) DEFAULT 'draft' COMMENT '状态:draft草稿/published已下发/completed已完成',
  118. source VARCHAR(20) DEFAULT 'manual' COMMENT '来源:manual手动/recommendations推荐生成',
  119. deployed_at DATETIME COMMENT '下发时间',
  120. created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  121. updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  122. INDEX idx_guide (guide_id),
  123. INDEX idx_child (child_id),
  124. INDEX idx_status (status)
  125. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='训练方案表';
  126. CREATE TABLE IF NOT EXISTS training_plan_items (
  127. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  128. plan_id BIGINT NOT NULL COMMENT '所属方案ID',
  129. sequence INT DEFAULT 0 COMMENT '排序号',
  130. dimension_key VARCHAR(50) COMMENT '认知维度:perception/focus/memory/logic/spatial/processingSpeed',
  131. suggestion TEXT COMMENT '建议文案',
  132. task_title VARCHAR(200) COMMENT '任务标题',
  133. task_desc TEXT COMMENT '任务描述',
  134. minigame_code VARCHAR(50) COMMENT '关联小游戏code',
  135. article_id BIGINT COMMENT '关联文章ID',
  136. task_points INT DEFAULT 2 COMMENT '任务积分',
  137. deadline_days INT DEFAULT 7 COMMENT '截止天数(从部署日起)',
  138. status VARCHAR(20) DEFAULT 'pending' COMMENT '状态:pending/completed/skipped',
  139. completed_at DATETIME COMMENT '完成时间',
  140. created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  141. INDEX idx_plan (plan_id)
  142. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='训练方案项目表';
  143. CREATE TABLE IF NOT EXISTS training_plan_tasks (
  144. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  145. plan_id BIGINT NOT NULL COMMENT '方案ID',
  146. plan_item_id BIGINT NOT NULL COMMENT '方案项目ID',
  147. task_id BIGINT NOT NULL COMMENT '实际Task ID',
  148. child_id BIGINT NOT NULL COMMENT '执行孩子ID',
  149. status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/completed',
  150. created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  151. INDEX idx_plan (plan_id),
  152. INDEX idx_task (task_id)
  153. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='训练方案任务关联表';
  154. -- ============================================
  155. -- 活动管理(guide端活动创建/编辑/发布)
  156. -- ============================================
  157. CREATE TABLE IF NOT EXISTS guide_activities (
  158. id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
  159. guide_id BIGINT NOT NULL COMMENT '规划师ID',
  160. title VARCHAR(200) NOT NULL COMMENT '活动标题',
  161. description TEXT COMMENT '活动描述',
  162. cover_image VARCHAR(500) COMMENT '封面图片URL',
  163. category VARCHAR(50) DEFAULT 'other' COMMENT '分类:outdoor/nature/culture/sports/other',
  164. location VARCHAR(300) COMMENT '活动地点',
  165. activity_date DATETIME COMMENT '活动日期时间',
  166. max_participants INT DEFAULT 20 COMMENT '最大参与人数',
  167. current_participants INT DEFAULT 0 COMMENT '当前报名人数',
  168. price BIGINT DEFAULT 0 COMMENT '价格(分),0表示免费',
  169. status VARCHAR(20) DEFAULT 'draft' COMMENT '状态:draft草稿/published已发布/cancelled已取消/completed已完成',
  170. source VARCHAR(20) DEFAULT 'manual' COMMENT '来源',
  171. published_at DATETIME COMMENT '发布时间',
  172. created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  173. updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  174. INDEX idx_guide (guide_id),
  175. INDEX idx_status (status),
  176. INDEX idx_activity_date (activity_date)
  177. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='规划师活动表';