将唯一主键标示为自增长型(identity(1, 1)),但是这样的程序的话,就麻烦一些了,因为要去判断哪些字典是修改还是其他。如果不设置为自增长型的话,程序可以在每次保存的时候,直接删除旧数据,然后添加新数据。类似的问题还有一些关系型的字段,如果设置了主外键关系的话,在写程序的时候就更加需要比直接删除再添加的方法多好多代码了。请问大虾们,如果权衡两者之间的关系呢?以及大虾们在实际的应用中是如何考虑的呢?

解决方案 »

  1.   

    主键这个东西我很少用自动identity,浪费主键啊,就这么一个聚集索引,一般来说查询、删除、修改,都很少使用WHERE ID=
    而且看起来还不容易,我一般尽量把主键放到能够经常用上的字段上。
      

  2.   

    谢谢 dutguoyi, sxycgxj, jwt, hopewell_go 的建议:
    --
    to jwt:
    >主键这个东西我很少用自动identity,浪费主键啊,就这么一个聚集索引,一般来说查询、删除、修
    >改,都很少使用WHERE ID=
    --
    如果你不用pk作为where的条件,那你用的是什么呢?to sxycgxj:
    >数据库之间的关系就是这样,一般可以用触发器来实现
    --
    用触发器可以解决pk, fk的问题,
    但是对于数据修改时(删除,更新,插入)时,问题依然会存在。to dutguoyi(新鲜鱼排)
    >可以使用一列作为主键,但是不要使用自增属性,你可以在添加的时候判断最大的主键,
    >然后加1,这样数据复制不会影响。否则复制以后主键会发生变化。
    --
    我的一位同事的建议和你一致,具体做法还是商讨之中。