我知道通常建议使用代理主键而不是自然主键,但是当涉及到用户名时,是否有任何支持代理主键的论据?

有帮助吗?

解决方案

如果您不想获得重复的用户名,请创建一个 UNIQUE constraint.

如果什么 DWong1145 想要更改其用户名吗?您能否将所有数据库关系设置为 UPDATE CASCADE?

其他提示

下,你应该使用用户名仅作为一个独特的键/恒定即可。用户名可以被改变,只是与实施例:它可以是一个商标,所有者请求你删除它

这在某种意义上是一个不错的选择,但是你必须要考虑,如果你真的想这样做。举例来说,你有一定的用户名的用户,那么用户被“删除”(或标记为删除)。所以,实际上是没有理由不允许创建具有相同的用户名其他用户,但它已经“采取了”,因为它是一个主键。

从客户的角度来看,你打赌。我不希望我的用户名是DWong1145。

有一个字符串作为主键,无论它是一个用户名或其他东西的一个很大的缺点,就是引用表的所有外键列也必须是字符串,它不仅运行速度较慢而且比较浪费空间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top