您可以使用username作为唯一标识符/主键

时间:2014-05-03 00:38:14

标签: sql database web

关于以下案例的最佳做法,只是一个简单的问题。

使用帐户开发网站。网站设置为没有两个帐户可以拥有相同的用户名,即所有用户名都是唯一的。

在数据库中持久保存帐户时,是否可以将用户名作为主键(唯一标识符)使用,或者是否有一些我需要注意的原因需要单独生成的唯一ID?

1 个答案:

答案 0 :(得分:6)

请勿使用用户名作为主键,从不

使用代理键(即自动生成的数字),因为

  1. 它们更快更小(密钥是4-8个字节,用户名是你不知道字节?)
  2. 现在只有 您认为用户名将是唯一的,稍后您会发现您需要非唯一的用户名(例如,对于您必须保存交易历史记录的已删除用户),或要求会改变
  3. 用户应该能够更改用户名,以防出现错误/错误/等等
  4. 更新:如果是分布式系统,请使用GUID