url / user / unique_username VS / user / id / possible_duplicate,我应该选择什么?

时间:2011-06-04 19:04:38

标签: database-design unique

每次我想构建一个内部注册了多个用户的新网站时,我总是会问自己,对于唯一的用户名或重复的用户名是否更好。后者的一个示例是Stack Overflow站点(因为它使用唯一的用户ID而不是唯一的用户名)。

我总是选择以前的选择,但我讨厌它,因为很多时候你不能使用自己喜欢的用户名。

我应该选择什么?是否有一些好的建议可以帮助决定?

2 个答案:

答案 0 :(得分:1)

我认为使用电子邮件地址作为登录的用户ID,并且拥有允许用户选择非唯一昵称的配置文件是最佳方法。电子邮件地址更难以忘记,并且非常不可能(实际上不可能 - 除了试图打开多个帐户的用户)以引起名称冲突。您还希望将真实的电子邮件地址作为用户配置文件的一部分,因为您希望能够联系到您的成员,并且最终还是需要向许多/大多数用户发送密码重置电子邮件。

话虽如此,我会为用户配置文件使用内部唯一ID,例如IDENTITY整数或GUID。这是因为电子邮件地址不是不可变的。您希望成员能够在不中断外键的情况下更改电子邮件。但是,电子邮件应该是您的用户/成员表中的候选键。

答案 1 :(得分:0)

Stack Overflow允许重复的名称,但不允许重复的用户。 (不是你似乎在谈论的方式。)每个Stack Overflow用户都有一个唯一的ID号,包括 yours (它是185921)。每个Stack Overflow用户还有一个可能不唯一的“名称”。

Stack Overflow允许每个用户选择他们自己的“名称”,但Stack Overflow代码不会使用它。 Stack Overflow代码使用唯一的ID号。