今日在做数据库表设计时,以指定的编号作为主键,
但是有人告诉我说每张表都必须设置个自增序列字段,同时说网易数据库也这样设计(不知真假)。我很不明白为什么每张表都要加这样的自增序列。不知道各位在建表设计的时候是不是也这样做的,如果这样做的请告诉我为什么。

解决方案 »

  1.   

    我们加自增序列的目的是:  1、捕获数据增量  2、ETL抽取使用,判断先手顺序
      

  2.   

    自增列 可用于排序分页。
    因为自增列本身是number ,效率高。最大的也就是最好插入的。
    但不是必须的。可以建立。
      

  3.   

    有了自增列做主key,当然就不需要在建主key了
    而且自增列有很多功能,不是你随便建一个主键可以代替的,
    如果你恰好需要一个自增的主key,那就建自增列是最好的办法啊.
    但是,并不是每个表都要这样做啊,有用的时候就用,没用的表建它干嘛啊?
      

  4.   

    一般来说都会建一个自增的编号number  可以作为主键  然后获取数据也方便点 可以直接锁定到行
      

  5.   


    多谢楼上各位,看来这个是否要给每张表都增加自增列是可以有,也可以没有的,并不是必须的。关于1楼说的ETL,我可以用时间戳的方式来抽取。关于4楼说法我不理解,加了自增列查询效率就高了,有这说法吗,论证过吗?请各位不吝赐教,谢谢。
      

  6.   

    纠结了很久是夫人让我明白了因为编程思想不一样,决定你是否需要此ID.面向对象的人喜欢用ID自增,面向过程的人喜欢用业务主键。