用途:在设计或审查 PostgreSQL 专用数据库模式时提供规范与检查清单,涵盖数据类型、索引、约束、性能模式和常见陷阱。
主要能力:核心规则包括为参考表定义主键(优先 BIGINT GENERATED ALWAYS AS IDENTITY,需全局唯一或不透明时用 UUID);先做 3NF 规范化,仅在连接性能确有瓶颈时按实测收益反规范化;语义必需处加 NOT NULL 并设默认值;为实际访问路径建索引——主键/唯一索引自动创建,外键列需手动创建,并为常用过滤、排序与连接键建索引。类型选择上:时间用 TIMESTAMPTZ,金额用 NUMERIC,字符串用 TEXT,整数用 BIGINT,浮点用 DOUBLE PRECISION。
陷阱提示:未加引号的标识符会转为小写;UNIQUE 允许多个 NULL,可用 NULLS NOT DISTINCT(PG15+)限制;外键列不会自动建索引;长度/精度溢出直接报错而非截断;序列/identity 存在空洞属正常;堆存储默认无聚簇主键,CLUSTER 是一次性重组;MVCC 会产生死元组。
其他覆盖:表类型(普通/TEMPORARY/UNLOGGED)、行级安全、各类约束(PK/FK/UNIQUE/CHECK/EXCLUDE)、B-tree/GIN/GiST/BRIN 及复合、覆盖、部分、表达式索引、RANGE/LIST/HASH 分区及其限制(无全局唯一约束,分区表外键需触发器)、更新密集与插入密集表优化、UPSERT 设计、并发建索引、生成列、常用扩展(pgcrypto、pg_trgm、citext、timescaledb、postgis、pgvector 等)与 JSONB 使用建议。
限制:内容为通用最佳实践,具体版本行为和性能需结合实际验证;资料未提供安装命令、收费信息或平台要求。