返回术语

数据与存储

数据结构Schema

你可能会问

数据结构到底是什么?为什么存数据之前要先「建表」?

简单来说

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

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

01 · 先这样理解

把抽象概念放进真实场景

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

换个角度想

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

02 · 点击演示

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

突出显示的部分,就是当前概念在整条流程中负责的位置。

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

    email文本 · 必填 · 唯一

    age数字 · 可选

    当前步骤
  2. 注册表单递来一条

    email(用户漏填了)

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

    等待进入
  3. 没有校验这道关

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

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

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

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

Define · 定义字段、类型和关系

03 · 放进真实任务

什么时候会遇到它

团队协作对齐

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

挡住脏数据

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

AI 的施工图

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

04 · 想一想

用一个问题检查理解

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

查看答案

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

老师提醒

最容易踩的坑

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

⌘K搜索知识库

最近收录

正在载入知识索引…