我们需要在大多数对象和数据库表中添加UUID。您会将UUID用作替代键,还是将其用作自然键并增加一个生成的替代键序列,即使用私有替代键,并添加列/属性来保存UUID?我发现它经常直接用作替代/主键。但是我不喜欢这个想法。一个UUID可以被视为自然键,因为它应该是一个具有全局意义的唯一标识符,就像任何其他自然键一样,独立于系统的特定实现,也就是说,如果您将数据移动到另一个系统,UUID必须保持不变,而替代键从定义上没有真正而持久的含义。假设我们有一个账户表。传统上,会有一些内部替代键和由账号号码(如打印账单等)构成的自然键。虽然UUID不像账号数字那么“可读”,但我认为UUID更像自然键,因为它可以像账号数字一样用于唯一且不变地引用特定账户。传统替代键从不出现在系统之外,因为它完全是私有的,并且随时可以更改,无需存在任何外部引用。在这个意义上,UUID不是典型的替代键吗?