日期:2014-05-17  浏览次数:20708 次

求教关于数据库自增长列的问题
我看有很多人设计的数据库,明明有不重复的列 比如ID号码这种,
但还是要新建一个自增长列当主键,请问这样做有什么好处吗,还是说自增长列查询比较快?

------解决方案--------------------
个人觉得有3点:
#1.当记录有顺序或查询时有可能依赖顺序的时候,会比较有用。
#2.自增,且回滚不会撤销。如果产生断号,可以容易定位到异常的记录。
#3.最重的原因,我想就是因为聚集索引。如果一个表没有合适的聚集索引(建议每个表都建立聚集索引),就用一个自增列做主键(同时也是聚集索引),这样每次插入的记录都会在聚集索引的最后,减少了索引碎片。而用其它字段做聚集索引,可能会由于INSERT,UPDATE造成一定的索引碎片。
#4.当然,像你说的这种情况,完全可以用ID字段来做主键。如果数据量和主键字段修改量不大,没完没有什么问题。
------解决方案--------------------
引用:
另外,用户可见的ID,说唯一、不变,其实都靠不住的:领导一句话大过天

这句强烈同意!!!
我们写的自己用的,类似ERP的系统,物料编号是主键,很多地方都用这个来做连接。
上个月,领导说要改物料编号的值。
我说是主键,没法改。
领导就说了,为什么不用数字来做主键,来和其他的表连接。这样,物料编号不就可以改了。
我无语………………