01 · DATA MODELINGP012 MIN
PostgreSQL 与关系模型
先理解表、行、列、关系和约束,再决定数据库里应该存什么。
MENTAL MODELPOSTGRESQL
01业务事实
→02表与列
→03约束
→04查询组合
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
PostgreSQL
成熟的开源关系数据库,负责持久化、并发控制、约束、查询与事务。
Table / Row / Column
表描述同类事实的结构,行是一条事实,列定义这类事实的属性与类型。
Schema
Schema 既可指表结构,也可指 PostgreSQL 中组织对象的命名空间;上下文必须说清。
窗饰产品为什么不能只存一张大表
团队把产品、颜色、供应商和库存都塞进 product 表,改一次供应商名称要更新几千行。
- 01
把产品身份、SKU、供应商和库存拆成独立事实。
- 02
通过外键表达 SKU 属于产品、库存属于仓库与 SKU。
- 03
让查询在读取时组合,而不是在写入时重复。
重复数据减少,更新边界清晰,数据库可以主动阻止不存在的 SKU 库存。
马上动手
- 用一句话分别定义 Product、SKU、Warehouse。
- 为每个实体列出稳定身份和会变化的属性。
常见坑
- 把页面字段原样当成表结构
- 所有可选字段都塞进 JSON
- 用名称而不是稳定 ID 建立关系
05 · KNOWLEDGE CHECK为什么关系数据库强调约束,而不只强调存储?查看答案⌄
答案
因为企业系统最昂贵的问题通常不是“没有保存”,而是保存了互相矛盾的事实;约束让错误尽早在写入边界失败。