返回路线图
MODULE 5 / 进阶
建模与 DDL
把数据"存得对":建表、约束、外键、索引、范式。
建模与 DDL:把数据"存得对"
DDL 是定义数据结构的语言——建表、约束、索引。把结构设计对,数据才可靠。
建表与类型
CREATE TABLE book (id integer PRIMARY KEY, title text, price numeric, sold boolean);
常用类型:integer 整数、text 文本、numeric 小数、boolean 真假、date 日期。
约束 = 数据的护栏
NOT NULL:这列不能为空。DEFAULT v:不给值时用默认值。PRIMARY KEY:主键,唯一且非空,一行的身份证。UNIQUE:该列不允许重复。FOREIGN KEY ... REFERENCES:外键,保证引用的行真实存在。CHECK(条件):自定义校验,如CHECK (price > 0)。
范式 vs 反范式
范式:拆表去冗余,改一处即可、靠外键关联(一致性强)。反范式:故意冗余换查询速度。先范式,再按需反范式。
索引
CREATE INDEX idx_log_level ON log(level);
索引加速按该列查找,代价是占空间、拖慢写入。高频过滤/JOIN 的列才值得建。
事务(了解)
BEGIN ... COMMIT 把多步打包成"全成或全不成"(原子性),出错用 ROLLBACK 回滚。
本模块练习你会亲手建表、加约束——"运行"会跑一个校验查询确认你建对了。