ige*_*elr 0 database-design primary-key surrogate-key candidate-key
我正在使用 MS SQL Server,但在一般数据库设计中,我想知道当数据库中的每一行都有其自动生成的代理键值时会出现什么问题。
我知道一些优点,比如主键不需要标识没有NULL的唯一列,不需要管理复合主键,范式更容易管理,唯一性有保证。
我想知道,是否有任何关于性能或索引结构等的充分理由应该使我们使用真实世界的事实键而不是代理键?
谢谢。
SQL*_*tor 5
使用代理键有很多缺点,恕我直言,最重要的是:
虽然有(罕见的)案例证明使用代理键是合理的,但最先进的是我见过的 99.9% 的数据库只是使用这种“神奇的一刀切”解决方案,对性能、模块化和数据一致性产生不利影响。
要了解更多相关信息,请观看我在 2017 年硅谷代码夏令营上就该主题进行的会议。
归档时间:
6 年,6 月 前
查看次数:
1244 次
最近记录: