想问问各位在设计数据库表的时候,一般是把什么字段设计成表的主键?
我想到的是
1、identity类型
2、guid
3、自己写生成函数,比如时间加上某些东西之类的。
4、用某数据列的唯一性
但是
1的缺点是在涉及到父子表的时候,用identity不好移植
2的缺点是开销大,存储空间和查询速度都有影响
3是需要自己写代码,而且万一写的不好还不能保证唯一性
4不能保证所有的表都有类似列其他的还好,我对父子表的主键一直没想好
如果我说的不对请拍砖
大家有什么其他的好方法,拿出来共享下~~

解决方案 »

  1.   

    没想过这么细。一直用ID,identity。
      

  2.   

    任何东西都有自己的优点和缺点,个人不同选择不同········我一般用int或Varchar做主键
      

  3.   

    主从表? 销售单单头,销售单明细?  当然主建一致了 。用VARCHAR 自己写 自动编号函数,然后统一生成ID  ----》 XXX-090907000001,XXX-090907000002
      

  4.   

    多数用的都是Identity字段,至于移植,好多人一辈子也移植不了几次
      

  5.   

    1、identity类型
    一般都是用的这个
    2、guid
    这个也可以
    3、自己写生成函数,比如时间加上某些东西之类的。
    这个的话你要确保你的这个程序生成的就是唯一的。
    4、用某数据列的唯一性 
    这个没有使用过
      

  6.   

    我写错了 ,从表 是主表的主建加  项次
    XXX-090907000001,1,XXX-090907000001,2