我知道代理主键通常建议使用自然主键,但是当涉及到用户名时,是否有任何支持代理主键的参数?
答案 0 :(得分:8)
如果您不想获得重复的用户名,请创建UNIQUE constraint
。
如果DWong1145
想要更改其用户名,该怎么办?您是否要将所有数据库关系设为UPDATE CASCADE
?
答案 1 :(得分:7)
否,您应仅将用户名用作唯一键/常量。用户名可以更改,只是和示例:它可能是商标,所有者要求您删除它。
答案 2 :(得分:5)
从某种意义上说,这是一个很好的候选人,但你必须考虑是否真的想要这样做。例如,您有一个具有特定用户名的用户,然后该用户被“删除”(或标记为已删除)。因此,实际上没有理由不允许使用相同的用户名创建另一个用户,但它已被“采用”,因为它是主键。
答案 3 :(得分:4)
从客户的角度来看,你打赌。我不希望我的用户名是DWong1145。
答案 4 :(得分:2)
将字符串作为主键,无论是用户名还是其他内容,一个很大的缺点是,引用该表的所有外键列也必须是字符串,这样既慢又浪费更多空间。 / p>