用户名是否是主键的有效候选者?

时间:2010-01-27 08:39:27

标签: database-design primary-key authentication

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

5 个答案:

答案 0 :(得分:8)

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

如果DWong1145想要更改其用户名,该怎么办?您是否要将所有数据库关系设为UPDATE CASCADE

答案 1 :(得分:7)

,您应仅将用户名用作唯一键/常量。用户名可以更改,只是和示例:它可能是商标,所有者要求您删除它。

答案 2 :(得分:5)

从某种意义上说,这是一个很好的候选人,但你必须考虑是否真的想要这样做。例如,您有一个具有特定用户名的用户,然后该用户被“删除”(或标记为已删除)。因此,实际上没有理由不允许使用相同的用户名创建另一个用户,但它已被“采用”,因为它是主键。

答案 3 :(得分:4)

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

答案 4 :(得分:2)

将字符串作为主键,无论是用户名还是其他内容,一个很大的缺点是,引用该表的所有外键列也必须是字符串,这样既慢又浪费更多空间。 / p>