Lobsters | 原文链接 | 2026-09-11 收录

ID 设计与主键(上):外部 ID、锚点 ID 与物理层的解耦

来源: anchorsandlinks.com — 2026-09-10

概述

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

核心要点

金句

在任意给定时刻,每一个外部 ID 恰好对应一个实体。
返回 Lobsters 首页