【发布时间】:2014-04-11 15:45:24
【问题描述】:
我需要创建一个数据库表,其中我主要有以下三个字段:
- ID(默认自动递增)。
- User_id(从1000开始,自动递增)
- 电子邮件
所以,我想将 Email 设置为唯一,而不是 null(主键),但我还想确保 User_id 保持唯一(可以通过设置唯一键来解决),我也希望它永远不会设置为空。那么,我该如何实现呢?我正在使用 MySQL 顺便说一句。
PS:目前我对这个架构构建不太擅长。所以,忽略任何愚蠢的错误。
【问题讨论】:
-
为什么要将电子邮件作为主键?以 ID 作为主键不是更好吗?
-
@Fred 电子邮件将由用户输入,所以我希望它是唯一的并且永远不会为空,所以,,,
-
您不必将其作为主键来实现这一目标。
-
@Fred 那么我如何才能使我的电子邮件独一无二(虽然我可以在输入电子邮件之前以编程方式检查,但在 db 中仍然存在任何其他方式)
-
在下面我的答案中创建表格后的两行中的任何一行都可以防止重复。如果您尝试输入重复的 SQL,则会引发错误。但是,为了获得更好的用户体验,请检查他们输入的电子邮件,如果他们输入了重复的电子邮件,请在点击提交之前让他们知道。
标签: mysql sql database-design