Visual LabINTERACTIVE LEARNING
01 · DATA MODELINGP012 MIN

PostgreSQL 与关系模型

先理解表、行、列、关系和约束,再决定数据库里应该存什么。

MENTAL MODELPOSTGRESQL
01业务事实
02表与列
03约束
04查询组合
数据库不是一个更大的 JSON 文件,而是一组由约束保护、能通过关系重新组合的事实。
01 · CONCEPTS & BOUNDARIES

先把概念与边界说清楚

定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。

01

PostgreSQL

成熟的开源关系数据库,负责持久化、并发控制、约束、查询与事务。

02

Table / Row / Column

表描述同类事实的结构,行是一条事实,列定义这类事实的属性与类型。

03

Schema

Schema 既可指表结构,也可指 PostgreSQL 中组织对象的命名空间;上下文必须说清。

02 · BLIND BOTS CASE

窗饰产品为什么不能只存一张大表

问题现场

团队把产品、颜色、供应商和库存都塞进 product 表,改一次供应商名称要更新几千行。

  1. 01

    把产品身份、SKU、供应商和库存拆成独立事实。

  2. 02

    通过外键表达 SKU 属于产品、库存属于仓库与 SKU。

  3. 03

    让查询在读取时组合,而不是在写入时重复。

得到什么

重复数据减少,更新边界清晰,数据库可以主动阻止不存在的 SKU 库存。

03 · PRACTICE

马上动手

  1. 用一句话分别定义 Product、SKU、Warehouse。
  2. 为每个实体列出稳定身份和会变化的属性。
04 · PITFALLS

常见坑

  • 把页面字段原样当成表结构
  • 所有可选字段都塞进 JSON
  • 用名称而不是稳定 ID 建立关系
05 · KNOWLEDGE CHECK为什么关系数据库强调约束,而不只强调存储?查看答案⌄
答案

因为企业系统最昂贵的问题通常不是“没有保存”,而是保存了互相矛盾的事实;约束让错误尽早在写入边界失败。