为什么有人会使用数字(12,0)数据类型作为简单的整数ID列?如果你有理由为什么这比int或bigint更好,我想听听.
我们没有对此列进行任何数学计算,它只是用于外键链接的ID.
我正在编译有关产品的编程错误和性能问题的列表,我想确保他们出于某些逻辑原因不这样做.如果您点击此链接:http: //msdn.microsoft.com/en-us/library/ms187746.aspx
...你可以看到数字(12,0)使用9个字节的存储空间并且限制为12个数字,如果包含底片,则总共有2万亿个数字.为什么一个人在使用bigint时会使用这个数字,并且使用一个字节的存储空间获得1000万倍的数字.此外,由于这被用作产品ID,因此标准int的40亿个数字已经足够了.
所以在我拿起火把和叉子之前 - 告诉我他们在辩护中会说些什么?
不,我没有做出大笔交易,软件中存在数百个这样的问题,这些都导致了巨大的性能问题并且在数据库中占用了太多空间.我们为这个垃圾支付了超过一百万美元......所以我认真对待它.
也许他们习惯与Oracle合作?
包括整数在内的所有数字类型都标准化为所有平台中的标准单一表示.
使用数字的原因有很多 - 例如 - 财务数据和其他需要对某些小数位精确的东西.但是对于上面引用的示例,可以使用简单的int.
也许草率的程序员工作谁不知道如何设计数据库?