【问题标题】:Making email as primary key is bad idea? [duplicate]将电子邮件作为主键是个坏主意? [复制]
【发布时间】:2015-05-12 22:58:52
【问题描述】:

我正在制作一个用户可以在其中创建帐户的应用程序。我将用户电子邮件作为用户表中的主键。难道这种技术真的是糟糕的技术吗?我应该创建自动递增整数作为主键吗?

【问题讨论】:

  • 我会使用一个 int 作为主键,并在 email 列上放置一个唯一索引。
  • 这不是一个好主意...人们偶尔会更改电子邮件地址。
  • 是否永远不允许用户更改与其帐户关联的电子邮件地址?
  • 我建议使用增量 int 或 guid 作为主键,使用电子邮件作为唯一索引。这样会更安全、更轻松、更方便。
  • 非常糟糕的主意,我想跨表查找的速度会大大降低

标签: c# sql asp.net


【解决方案1】:

是的,这是一个糟糕的主意。电子邮件很长(因此您的密钥比必要的要长),并且它不是一成不变的。在过去十年中,我至少更改了三封电子邮件(提供商已关闭)。

【讨论】:

  • 谢谢,我明白了。
  • 我认为将电子邮件地址作为主键的主要问题是您也将它们作为外键。
  • @TimSchmelter 是的。显然,如果您在数据库中有一个表,那么您可以使用电子邮件作为主键 :) 但这将是一个非常非常简单的数据库
猜你喜欢
  • 2020-12-12
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 2019-11-11
  • 2011-04-04
  • 2011-04-17
  • 2020-08-12
  • 2017-01-31
相关资源
最近更新 更多