这是《数据库设计书》的加更章节,系统讲主键设计,第一部分从逻辑层开始。作者区分了外部 ID——可以对外发送、打印、电话告知的标识,可能缺失、可能变更、可能一个实体有多个——与锚点 ID,后者要在数据库内部可靠且不可变地标识实例,常用从 1 开始的整数。任何锚点 ID 原则上都能当外部 ID 用,但订单号这类自增整数若对外披露,竞争对手可以定期下单来估算你的业务增长,解法是另生成 20261016-32767 这类日期加随机的对外编号。文章还讨论了来自外部系统的 ID 在用作锚点 ID 前的各种坑,并给出一个小型 CMS 的锚点表设计。