一个注册用户表,用户名是字符串类型的,唯一的请问这样一个表,有必要再建一个自增的ID字段来做为主键吗?如果没必要,那用用户名字段来做主键吗?刚搜索了一下,好像推荐用int型的来做主键,不推荐用字符型字段做主键

解决方案 »

  1.   

    主键是主键,用户名是用户名,你不会用用户名去做外键关联到别的表吧。至于主键类型,个人觉得字符好一点,一般情况自己写个生成编号的函数,例如用户表主键'US00000000000001','US00000000000002'
      

  2.   

    这样已经可以了,不需要另外建主键,如一张单据的主表,单据号肯定的唯一的主键,
    而单据号基本不会使用int型,基本都是带有年月日的字符型
      

  3.   

    如果使用用户字段来做主键,那像我写的一些分页的select top 这样的语句那就实现不了分页了
      

  4.   

    推荐int 是因为 int的性能 方面比 字符串的要好