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

Saa*_*ieh 4 sql database web

关于以下案例的最佳实践,只是一个简单的问题.

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

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

Iły*_*sov 6

不要使用用户名作为主键,永远不要.

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

  1. 它们更快更小(密钥是4-8字节,用户名由你不知道字节?)
  2. 它只是现在你想用户名将是唯一的,以后你会发现,你需要非唯一的用户名(例如对于您必须保存交易记录已删除的用户),或质量要求将会改变
  3. 如果出现错误/错字/等,用户应该能够更改用户名

更新:如果是分布式系统,请使用GUID