参考表是否应包含数字PK标识列值0?

时间:2011-09-15 12:42:02

标签: sql-server database-design

我们有一个包含有效货币代码的表格。例如,我们选择使用数值作为主键而不是3 char ISO货币代码。

普遍共识已得出结论,此CurrencyId列应包含以零开头的值。由于美元是我们的主要货币,因此它声称第一个位置的值为0。

我的想法是,标识列不应该从零开始,原因是某些语言将数字初始化为零,因此货币代码可能无意中设置为USD,而实际上它从未被分配。 / p>

我都湿了吗?我希望将CurrencyId 1分配给USD

1 个答案:

答案 0 :(得分:3)

实际的ID应该无关紧要。让它从0开始(或者就此而言是1)是完全随意的,因为该数字对用户没有意义 - 它仅被系统用作参考。无论是从0还是1或4,536,901开始都不是关键的设计决定。

我认为你提出的问题是100%有效;从0开始可能会导致副作用,其中一些可能最终成为微妙且难以追踪的错误。避免这种超过任何人反对在零开始编号的abitrary / aethstetic愿望。