2026-05-26-field-additions-design.md 3.1 KB

数据字段补充设计方案

日期: 2026-05-26 状态: 待审批

概述

在用户信息、成长档案、家庭信息中补充新的字段,完善数据模型。

字段变更

1. User 表 — 用户信息补充

字段名 类型 说明 枚举值
ethnicity VARCHAR(20) 民族 汉族、蒙古族、回族、藏族、维吾尔族、苗族、彝族、壮族、布依族、朝鲜族、满族、侗族、瑶族、白族、土家族、哈尼族、哈萨克族、傣族、黎族、其他
blood_type VARCHAR(10) 血型 A、B、AB、O、未知
highest_education VARCHAR(30) 最高学历 小学、初中、高中、中专、大专、本科、硕士、博士
marital_status VARCHAR(10) 婚姻状态 未婚、已婚、离异、丧偶

2. GrowthRecord 表 — 成长档案补充

字段名 类型 说明
school VARCHAR(100) 学校名称
grade INT 年级(数字:1~12)
academic_performance VARCHAR(200) 成绩/学业表现 文本
school_province VARCHAR(50) 学校所在省
school_city VARCHAR(50) 学校所在市
school_district VARCHAR(50) 学校所在区
school_street VARCHAR(50) 学校所在街道

现有 height/weight 字段保留不变。

3. Family 表 — 家庭所在区域

Family 已有 province/city/district/street/streetId 四级地址,前端的家庭信息页面展示即可。

改动范围

后端

文件 改动
entity/User.java +4 字段: ethnicity, bloodType, highestEducation, maritalStatus
entity/GrowthRecord.java +7 字段: school, grade, academicPerformance, schoolProvince, schoolCity, schoolDistrict, schoolStreet
service/UserService.java updateUserInfo() 接收新字段
controller/auth/UserController.java 更新用户信息接口传递新字段

前端

文件 改动
pages/user-edit/user-edit.vue 表单增加 民族/血型/学历/婚姻状态 picker
pages/growth/create.vue 表单增加 学校/年级/成绩/学校区域输入
pages/growth/detail.vue 显示新增字段

数据库

DatabaseInitializer.java 或独立 SQL 脚本:

ALTER TABLE users 
  ADD COLUMN ethnicity VARCHAR(20) DEFAULT NULL COMMENT '民族',
  ADD COLUMN blood_type VARCHAR(10) DEFAULT NULL COMMENT '血型',
  ADD COLUMN highest_education VARCHAR(30) DEFAULT NULL COMMENT '最高学历',
  ADD COLUMN marital_status VARCHAR(10) DEFAULT NULL COMMENT '婚姻状态';

ALTER TABLE growth_records
  ADD COLUMN school VARCHAR(100) DEFAULT NULL COMMENT '学校名称',
  ADD COLUMN grade INT DEFAULT NULL COMMENT '年级(数字)',
  ADD COLUMN academic_performance VARCHAR(200) DEFAULT NULL COMMENT '成绩/学业表现',
  ADD COLUMN school_province VARCHAR(50) DEFAULT NULL COMMENT '学校所在省',
  ADD COLUMN school_city VARCHAR(50) DEFAULT NULL COMMENT '学校所在市',
  ADD COLUMN school_district VARCHAR(50) DEFAULT NULL COMMENT '学校所在区',
  ADD COLUMN school_street VARCHAR(50) DEFAULT NULL COMMENT '学校所在街道';