【发布时间】:2011-02-06 06:46:07
【问题描述】:
我正在开发一个 Java Web 应用程序。对于身份验证,我要求用户输入他的电子邮件和密码。现在,我正在使用 JPA 2,这可能不是那么重要。
如果电子邮件是用户表的键,它将大大简化我的生活。我可以做一个简单的:
User selected = em.find(User.class, userEmail);
看到了吗?此外,每个电子邮件地址都是唯一的,没有空格等。现在,没有人这样做,我猜这是有原因的。我也有疑问,我的意思是,它是 varchar 等。但你认为这是个好主意吗?如果不是,为什么?这必须是一个很好的理由,这样权衡是不值得的。 数字键总是最好的,但在这里我发现自己一遍又一遍地处理用户的电子邮件,并且一直通过电子邮件搜索它们,除了连接列等之外,从不真正使用 id。
【问题讨论】:
-
我认为这可能是我没有想得太远,我可能有成千上万的用户和数以百万计的连接,而 varchar 键与数字键会导致空间浪费,但是还有其他原因吗?
-
嗯。我只是自己回答。主键永远不应该改变,用户可以改变他的电子邮件。我想这是最大的原因。我应该删除我的问题还是让其他人看到以防他们有这个疑问
-
把它留在这里 - 下面出现的答案将对其他人有所帮助。
-
请记住,您可以在 SO 上回答您自己的问题......就像是一个实际的答案!!!如果您将来提出问题并自己回答,请随时发布并接受它:)
标签: java sql database jpa database-schema