【发布时间】:2011-09-15 12:42:01
【问题描述】:
我们有一个包含有效货币代码的表。例如,我们选择使用数值作为主键,而不是 3 字符 ISO 货币代码。
普遍的共识是,此CurrencyId 列应包含以零开头的值。由于美元是我们的主要货币,因此它以0的价值占据了第一位。
我的想法是,标识列不应从零开始,唯一的原因是某些语言将数字初始化为零,因此货币代码可能无意中设置为 USD,而实际上从未分配过。
我都湿了吗?我更愿意将 1 的 CurrencyId 分配给 USD。
【问题讨论】:
-
无论您决定什么 - 只需确保在某处清楚地记录这一点,并就您选择的解决方案征得所有开发人员和 DBA 的同意!另外:如果您确实使用
0作为“真实”值,您仍然可以始终选择例如-1作为“未知”或“未定义”的占位符值,并将引用此表的列设置为使用该值作为默认值。 -
@Chad - 我同意你的看法。 This question has a similar sort of discussion about enums
标签: sql-server database-design