小编plm*_*uon的帖子

使用uuid作为主要和/或代理键?

我们需要将UUID添加到大多数对象和数据库表中.

您是否将UUID用作代理键,或者更确切地说,除了序列生成的代理键之外还使用自然键,即使用私有代理键并另外添加列/属性来保存UUID?

我看到它经常被直接用作代理/主键.不知怎的,我不喜欢这个主意.

可以将UUID视为自然键,因为它应该是具有全局含义的唯一标识符,就像任何其他自然键一样,独立于系统的特定实现,即如果您将数据移动到另一个系统, UUID必须保持不变,而根据定义,代理键没有真正和持久的含义.

也许我应该澄清更多:假设我们有一个账户表.传统上会有一些内部代理密钥和一个由帐号组成的自然密钥(在帐户报表上打印等).

虽然UUID不像帐号那样"可读",但我会将UUID视为更自然的密钥,因为它可以起到与帐号相同的目的:以独特且不变的方式引用特定帐户.(传统的)代理密钥永远不会出现在系统之外,因为它完全是私有的,可以随时更改,不需要外部引用.

从这个意义上说,UUID不是典型的代理键(?).

uuid database-design

5
推荐指数
1
解决办法
1555
查看次数

标签 统计

database-design ×1

uuid ×1