我有一个网络应用程序,我根据他们的电子邮件ID注册用户。
从设计/易用性/灵活性的角度来看,我应该为每个用户分配一个唯一的号码还是根据emailid识别用户?
分配唯一号码的好处:
缺点:
哪个更好?您是否看到任何一个方案都需要考虑其他问题?
答案 0 :(得分:9)
您的用户身份应该是唯一且不可变的。选择电子邮件地址作为身份并不是一个好主意,原因如下:
顺便说一句,使用电子邮件作为用户身份的公开表示可能是安全和隐私问题。特别是如果您的一些用户不满13岁。您将需要一个不同的公共方面来表示用户身份。
答案 1 :(得分:6)
同时使用。 您必须添加一个id,因为您确实不希望其他表将该电子邮件地址用作外键。 使电子邮件地址唯一,这样您仍然可以使用它来识别具有sql命令行的用户。
答案 2 :(得分:2)
唯一号码 - 总是! 但请保持用户隐藏号码。
应允许用户更改其电子邮件。如果将其用作主要标识符,则在多个表中使用密钥时会导致许多复杂情况。
答案 3 :(得分:1)
你的劣势不是缺点。使用带有sql的数字并不比使用电子邮件或其他任何东西更重要。
另一方面,您的优势非常强大,您可能希望将用户彼此关联,使用一个用户帐户关联不同的电子邮件等,并且始终使用电子邮件会使事情变得更难。
还要考虑包括用户身份验证在内的网址,ID比在电子邮件中更容易处理,您需要考虑正确的网址拦截。
因此,我强烈建议使用灵活性和易用性,我强烈建议使用唯一的用户ID。
答案 4 :(得分:1)
除了用户不可见的用户电子邮件地址之外,您应该拥有其他标识符,并且永远不会更改。然后,您应该在电子邮件地址上强制执行唯一性,以便将其用作候选键。
您会发现用户想要更改他们的电子邮件地址或他们可以看到的任何内容,因此您应该尽可能地使用无法更改的标识符。
使用实际的电子邮件地址处理sql命令对象中的数字并不会更容易出错,如果有的话,我认为它不会出错。
答案 5 :(得分:0)
只需考虑一些要点。
答案 6 :(得分:0)
唯一的数字。除了确定的原因之外,我认为与使用电子邮件地址相比,更少更容易出错。更短,没有搞笑角色,更容易验证等。