换个角度想
Schema 像报名表的表头:姓名、手机、生日,每栏填什么、什么格式都印在纸上。没有表头,每个人按自己的理解乱填,收上来的表根本没法汇总。
术语 · 数据与存储
Schema
定义数据包含哪些字段、字段类型以及它们之间的关系。
先定形状,数据才对得齐
Schema 像报名表的表头:姓名、手机、生日,每栏填什么、什么格式都印在纸上。没有表头,每个人按自己的理解乱填,收上来的表根本没法汇总。
email文本 · 必填 · 唯一
age数字 · 可选
email(用户漏填了)
age"25 岁" · 手滑打成文字
没有校验这道关
"25 岁"、空邮箱,原样进了库
age 要数字、email 必填 → 都不合规
✗ 当场退回表单,请用户改正
定义字段、类型和关系
前后端看同一份 schema,字段叫什么、什么类型,不靠口头约定。
必填、唯一、类型约束在写入时把关,坏数据进不了库。
让 AI 写增删改查前先给它 schema,生成的代码字段才对得上。
统计用户平均年龄时程序崩了,一查发现 age 字段里混着 25、"25 岁"和空值。问题出在哪一环?
出在写入时没有 schema 把关:age 没约束成数字、也没规定必填,什么都存得进去。补上类型和必填约束,再清洗存量数据,统计才有得算。
Schema 不是定完就不能动,但每次改都牵动存量数据。删字段、改类型前先想清楚老数据怎么办——这正是迁移(Migration)要管的事。