🗄️ 数智健调 - 数据库ER图

实体关系图

erDiagram USERS ||--o{ WEIGHT_RECORDS : "has" USERS ||--o| WEIGHT_GOALS : "has" USERS ||--o{ TAGS : "creates" WEIGHT_RECORDS }o--o{ TAGS : "tagged_with" USERS ||--o{ ANOMALY_LOGS : "has" USERS { varchar id PK "用户ID(UUID)" varchar phone UK "手机号" varchar nickname "昵称" varchar school_id FK "学校ID" varchar grade "年级" boolean is_under_14 "是否未满14岁" varchar parent_phone "家长手机号" timestamp created_at "创建时间" timestamp updated_at "更新时间" } WEIGHT_RECORDS { varchar id PK "记录ID(UUID)" varchar user_id FK "用户ID" date record_date "记录日期" time measurement_time "测量时间" decimal weight "体重(kg)" decimal body_fat "体脂率(%)" decimal muscle_mass "肌肉含量(kg)" enum measurement_condition "测量条件" text notes "备注" timestamp created_at "创建时间" } WEIGHT_GOALS { varchar id PK "目标ID(UUID)" varchar user_id FK "用户ID" decimal target_weight "目标体重(kg)" decimal target_body_fat "目标体脂率(%)" date target_date "目标日期" decimal start_weight "起始体重(kg)" date start_date "开始日期" decimal weekly_target "每周目标减重量" enum status "状态" timestamp created_at "创建时间" } TAGS { varchar id PK "标签ID(UUID)" varchar user_id FK "用户ID" varchar tag_name "标签名称" enum tag_type "类型" varchar color "颜色代码" timestamp created_at "创建时间" } ANOMALY_LOGS { varchar id PK "日志ID(UUID)" varchar user_id FK "用户ID" enum anomaly_type "异常类型" enum severity "严重程度" text message "提示信息" date detected_date "检测日期" json related_record_ids "相关记录ID" boolean is_read "是否已读" timestamp created_at "创建时间" }

数据表详细设计

1. 用户表 (users)

字段名类型约束说明
idVARCHAR(36)PRIMARY KEY用户ID(UUID)
phoneVARCHAR(20)UNIQUE, NOT NULL手机号
nicknameVARCHAR(50)NOT NULL昵称
school_idVARCHAR(36)-学校ID
gradeVARCHAR(20)-年级
created_atTIMESTAMPDEFAULT CURRENT_TIMESTAMP创建时间

2. 体重记录表 (weight_records)

字段名类型约束说明
idVARCHAR(36)PRIMARY KEY记录ID(UUID)
user_idVARCHAR(36)FOREIGN KEY用户ID
record_dateDATENOT NULL记录日期
weightDECIMAL(5,2)NOT NULL, CHECK(30-200)体重(kg)
body_fatDECIMAL(4,2)NOT NULL, CHECK(5-60)体脂率(%)
muscle_massDECIMAL(5,2)NOT NULL, CHECK(10-100)肌肉含量(kg)
measurement_conditionENUM-fasting/after_meal
notesTEXT-备注

3. 体重目标表 (weight_goals)

字段名类型约束说明
idVARCHAR(36)PRIMARY KEY目标ID(UUID)
user_idVARCHAR(36)FOREIGN KEY用户ID
target_weightDECIMAL(5,2)NOT NULL目标体重(kg)
target_dateDATENOT NULL目标日期
start_weightDECIMAL(5,2)NOT NULL起始体重(kg)
start_dateDATENOT NULL开始日期
statusENUMDEFAULT 'active'active/completed/abandoned

设计说明