术语 · 数据与存储

数据结构

Schema

定义数据包含哪些字段、字段类型以及它们之间的关系。

先定形状,数据才对得齐

形状定了,才对得齐
写入把关,读取省心
Schema 规定每条数据有哪些字段、什么类型、哪些必填;写入时按它校验,读取时才敢放心使用。

换个角度想

Schema 像报名表的表头:姓名、手机、生日,每栏填什么、什么格式都印在纸上。没有表头,每个人按自己的理解乱填,收上来的表根本没法汇总。

同一批数据,为什么有结构才算得动?

  1. 这一步不存在——
    没有约定,什么都塞得进去
    users 表的 schema

    email文本 · 必填 · 唯一

    age数字 · 可选

  2. 注册表单递来一条

    email(用户漏填了)

    age"25 岁" · 手滑打成文字

  3. 没有校验这道关

    "25 岁"、空邮箱,原样进了库

    age 要数字、email 必填 → 都不合规

    ✗ 当场退回表单,请用户改正

  4. 用的时候炸平均年龄 NaN,群发邮件半路失败脏数据的账,总在读取时来算
    闭眼可用每条数据形状一致,统计一次算对写入时把关,换来读取时省心

定义字段、类型和关系

什么时候会遇到它

  1. 团队协作对齐

    前后端看同一份 schema,字段叫什么、什么类型,不靠口头约定。

  2. 挡住脏数据

    必填、唯一、类型约束在写入时把关,坏数据进不了库。

  3. AI 的施工图

    让 AI 写增删改查前先给它 schema,生成的代码字段才对得上。

想一想

统计用户平均年龄时程序崩了,一查发现 age 字段里混着 25、"25 岁"和空值。问题出在哪一环?

看答案

出在写入时没有 schema 把关:age 没约束成数字、也没规定必填,什么都存得进去。补上类型和必填约束,再清洗存量数据,统计才有得算。

最容易踩的坑

Schema 不是定完就不能动,但每次改都牵动存量数据。删字段、改类型前先想清楚老数据怎么办——这正是迁移(Migration)要管的事。

⌘K搜索知识库

最近收录

正在载入知识索引…