大家觉得主键是用GUID 还是自增int 还是代码维护的int  比较好呢
当然 我们GUID或是自增int 还是代码维护的Int 都不是万能的  更加欢迎讨论一下 什么时候 用这些比较好。

解决方案 »

  1.   

    如果这个字段被设置为主键,那么数据库系统本身会保证它不重复。换言之,无论你怎么用“代码维护”,要不然会插入失败,要不然就绝对不会重复。为此,为什么要“代码维护”呢。GUID不但可以保证它作为主键不重复,而且可以保证它在全局环境中也不重复(重复的概率可以忽略不计),为此,你要考虑你有没有这样的需要。比如你可能会合并两个数据库表中的数据,你应该考虑GUID。但是显然GUID对最终用户不友善。比如QQ如果被设计为让每个用户登录时输入一个GUID……总之你应该根据需要决定。
      

  2.   

    如果有并库的需求,guid 确实是个方便的选择。但是 guid 是有代价的,由于 guid 是随机值,用作聚簇索引时,会产生很多碎片,并且会降低空间利用率。对性能和尺寸的影响也是一个要考虑的因素。这里有一个链接,供楼主参考:使用NEWSEQUENTIALID解决GUID聚集索引问题
      

  3.   

    重要的业务数据
    都不要应Guid和自增长的int
      

  4.   

    我有的时候自增长的Int和Guid一起用.
      

  5.   

    我说的代码维护 就是主键不是业务数据 插入时 保证不重复 不能出现因为主键重复的原因插入失败,至于GUID 我想拿它给用户看或者输入的人 还没出生 至少我没见过