运动记录类应用(跑步/健身/骑行/游泳/瑜伽)的最小可用数据模型,出自运动打卡小程序。适合一切”类型 + 记录”形态的打卡应用(习惯、饮食、用药皆可套用)。

模型:字典表 + 记录表分离

exercise_types(类型字典表):name / icon / color——运动类型是用户可管理的配置,不硬编码枚举;删改类型不影响历史记录。

exercise_records(记录表):

字段设计点
user_idRLS 行级安全的锚点,必须建索引
type 外键建索引;只存引用不存类型名
时长(分钟)所有运动共有
卡路里 / 距离 numeric(5,2)可空——游泳没有距离、瑜伽没有公里数,宁空不填 0
备注自由文本
created_at排序字段,建索引

统计接口(/stats)基于记录表现场聚合,不建汇总表——个人量级下实时聚合足够。

要点

  • 打卡类应用的真实查询只有三种:按人按时间倒序、按类型筛选、汇总统计——索引照这三种建,不多建;
  • “统一 200 状态码 + body 内 code”的接口风格对小程序端更友好(见 Taro小程序跨端踩坑与规范);
  • 激励层(连胜/徽章/错题本式回顾)用客户端偏好存储即可起步,不必先上数据库。

原始素材

  • README
  • README

相关页面