同事提议为表添加自由文本 region 列,我反对,认为数据完整性应由数据库而非应用保证。比较四种方案:domain 有级联删除风险;enum 无法删除值;check 约束简单灵活;引用表最规范但需连接和索引。最终选用 check 约束。对 2400 万行大表,加列用常量默认值不重写,但加约束仍会扫描,故先用 NOT VALID 加约束再 VALIDATE。新增区域时,先原子替换约束,再择时验证。核心教训:完整性规则应放在数据库,应用与数据库双重防护,且要验证而非假设。
完成下面两步后,将自动完成登录并继续当前操作。