关于下面的问题,我有一个快速提问。 正在开发一个带有账户的网站。网站设置为不允许两个账户具有相同的用户名,即所有的用户名都是唯一的。 在将账户持久化到数据库中时,是否可以使用用户名作为主键(唯一标识符),还是需要生成一个单独的唯一id,有什么需要注意的原因吗?
不要将用户名作为主键,绝不要。 请使用代理键(即自动生成的数字),因为: 它们更快且更小(键为4-8个字节,而用户名长达 你不知道 字节?) 只有 现在 您才认为用户名是唯一的,以后您会发现需要非唯一的用户名(例如对于已删除用户,您必须保存交易历史记录),或者需求会改变 用户应该能够更改他们的用户名,以防错误/打字等 更新:在分布式系统的情况下,请使用GUID。
username
用于登录(因此应该是唯一的),我会将历史记录存储在另一个表中,这样我就可以获得唯一键约束的安全性。如果不是,如果它是某种标签,那么就无所谓了。 - Clockwork-Muse