为什么有人会使用数字(12,0)数据类型作为简单的整数ID列?如果你有一个理由为什么这比int或bigint更好,我想听听它。在T-SQL中是否有任何数字而不是int的原因?
我们没有对这一列做任何数学计算,它只是一个用于外键链接的ID。
我正在编译一个关于产品的编程错误和性能问题列表,我想确定他们没有这样做是出于某种逻辑原因。如果您点击此链接: http://msdn.microsoft.com/en-us/library/ms187746.aspx
...您可以看到数字(12,0)使用9个字节的存储空间,并限制为12位数字,如果包含负数,则总数为2万亿个数字。为什么一个人在使用bigint的时候会使用这个功能,并且只需要少一个字节的存储就能获得1000万次的数字。此外,由于这被用作产品ID,所以标准整数的40亿个数字已经足够了。
因此,在我抓住火把和球叉之前 - 告诉我他们在防守时会说些什么?
不,我没有做任何事情,软件中有数百个这样的问题,这都会导致巨大的性能问题,并在数据库中使用太多空间。我们为这种垃圾支付了一百多万美元......所以我认真对待它。
奇怪的是,当它们被允许为负数时,整数表示整数。 – recursive 2009-01-13 21:15:41
负数是整数 - 它们没有小数部分。他们不是按照大多数定义来“计算数字”,但它们是完整的。 – Jasmine 2009-01-13 21:24:54
http://en.wikipedia.org/wiki/Whole_number – GEOCHET 2009-01-13 21:46:59