【发布时间】:2013-07-01 19:18:14
【问题描述】:
只是一个非常快速的问题,我似乎无法找到答案。我正在制作这些表格,并且有人告诉我,每个表格都需要有某种形式的随机唯一 ID,它与 PK 是分开的。我的问题是,我是否可以以与 PK/FK 相同的方式将两个表与 UID/FK 关联起来。
这是不好的做法吗?有什么优点/缺点?
【问题讨论】:
-
谁告诉你的,在什么情况下?例如,确实经常建议在通过 URL 传递信息时使用随机的、非顺序的 ID,但如果唯一值不向世界或最终用户公开,则通常不需要。换句话说,并不是每张桌子都需要它。
-
我在实习期间将其作为迁移项目的一部分。如果您愿意,我的导师说每个表都应该有一个 ID 列,并且 PK 应该与该 ID 分开。
-
如果 PK 值没有对外暴露,我看不出它有多大价值。出于同样的原因,只有我家的外门有很重的插销锁。增加 PK 列的目的是强制唯一性,您实际上并不需要 double 唯一性。
-
因此,建议在所有表中同时拥有主键(顺序生成或自然键?)和(随机生成)唯一键?
-
这就像有一张员工表。 SSN是主键,然后会有另一个随机唯一ID
标签: sql foreign-keys relational-database