我不相信银弹,但我真的很喜欢使用序列或自动编号标识列作为数据库表的主键列。它们是独一无二的,它们的索引很好,而且我不必担心空值。
另一方面,在某些情况下,当表中还有其他可以用于相同目的的唯一列时,它们似乎是多余的。例如,假设您正在构建一个表格,将 9 位邮政编码映射到城市区域。邮政编码字段也可以正常工作(前提是您可以保证数据格式并且没有重复值)。
直截了当:我的经验,就像我们任何人一样,是有限的。还有哪些现实世界的例子导致人们选择不使用自动编号列作为表的主键,为什么?
这对我来说是一种“拓宽视野”的事情,我希望向那些使用过多数据库并有令人信服的理由选择其他方式的人学习一些东西。