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

表是否必须自增字段
如题,个人刚工作不久,做的项目不多。
  但在数据库表 自增字段 的必要性有点疑问。
有时表已经有主键了,还有必要在增加一个自增字段吗?
问过有经验的人,他们给我的回答是 “以前做个项目,就是因为没有自增字段,吃了一个大亏“
究竟需不需要自增字段还是很疑惑,希望做过项目的高手指点。(我们现在的一个项目里面,每个表都有自增字段,有些用上了,有些根本就没用!)

------解决方案--------------------
没有用的加上干嘛?
------解决方案--------------------
个人觉得如果根本没用,或者后期拓展也用不到的话,那么就没必要加上。比如如果商品表,主键可以是商品编号,商品编号也可以是商品销售表的外键,给商品编号一个不重复的生成规则,那么ID自增就不是那么需要了
------解决方案--------------------
个人认为,绝大部分应用其实没必要添加自增ID。你想想,自增ID其实99%是为了标识一行数据,它几乎是没有实际应用意义的。并且在查询的时候where子句用处也不大。反而使用一些有意义的组合列作为主键,使用的时候会更方便。一些商业应用里面,1000个表大概30、40个表需要有自增ID就算比较正常。如果80%以上的表都有自增ID,那基本上这个设计肯定有问题。
------解决方案--------------------
我建议加上自增字段,用于标识某行,可以简化编程
------解决方案--------------------
如果你采用的是复合主键,那么建议你加上自增列,如果不是,那不是很必要!
------解决方案--------------------
如果是刚开始 工作,可以走老路 把自增ID 加上,这样对你理解自增ID 的作用是有帮助的。

其实自增ID 如果用的好 绝对利大于弊,但是需要注意的是,数据库在默认情况下 聚集索引在加在自增ID上

的,这点需要我们自己根据业务做出正确的判断,最优的方式是 将聚集索引建在核心的字段上而并非 自增ID 


------解决方案--------------------
高手们都来谈谈啊!!!! 我现在做的项目大部分表都是有 自增长列的,那岂不是很差的设计啊
------解决方案--------------------
资料多的可以加上,资料少于万级的没有必要