我应该使用数字或电子邮件ID来识别网站上的用户吗?

3 database database-design

我有一个网络应用程序,我根据他们的电子邮件ID注册用户.

从设计/易用性/灵活性的角度来看,我应该为每个用户分配一个唯一的号码还是根据emailid识别用户?

分配唯一号码的优点:

  1. 我可以在以后更改登录本身而不会丢失用户的数据(灵活).

坏处:

  1. 使用sql命令行时我必须处理数字(容易出错).

哪个更好?您是否看到任何一个方案需要考虑的其他问题?

Fra*_*nov 9

用户的身份应该是唯一且不可变的.选择电子邮件地址作为身份不是一个好主意,原因如下:

  • 电子邮件是用户身份的一个方面,可以随时更改.
  • 您可能决定允许多个电子邮件.
  • 您可能决定添加其他方面,例如OpenID或Live ID,甚至只是添加旧的普通用户名.
  • 允许多个身份共享同一个电子邮件方面没有任何问题.这是一种罕见的情况,但并非闻所未闻.
  • 规范化电子邮件地址很难并且容易出错,因此您可能在强制执行唯一性时遇到问题.(电子邮件地址是否区分大小写?您是否忽略.或+内部电子邮件?您如何比较非英语电子邮件?)

顺便说一句,使用电子邮件作为用户身份的公开表示可能是安全和隐私问题.特别是如果您的一些用户不满13岁.您将需要一个不同的公共方面来表示用户身份.


ybo*_*ybo 6

使用两者.您必须添加一个id,因为您确实不希望其他表将该电子邮件地址用作外键.使电子邮件地址唯一,以便您仍然可以使用它来识别具有sql命令行的用户.