数据库设计
好的库表设计能省下日后无数优化成本。
一、范式
第一范式要求原子列;第二范式消除部分依赖;第三范式消除传递依赖。范式减少冗余、避免更新异常。
二、反范式
高并发读场景下,适当冗余(如把统计值存下来)可减少 JOIN,用空间换查询速度。范式与反范式要权衡。
三、建模实践
- 先画 ER 图,理清实体与关系(1:1 / 1:N / N:N)。
- 选合适类型:能用 INT 不用 BIGINT,定长用 CHAR、变长用 VARCHAR。
- 必备:主键、合理索引、软删除字段、时间戳。
设计不是一步到位,先满足范式保证正确,再按性能瓶颈针对性反范式。