MySQL 数据库中的表有一个电子邮件地址列。最终,电子邮件地址应该是唯一的并且具有有效的格式。我无法决定应该在哪里进行检查以及需要进行哪些检查。
显然,单独的 SQL 不能完全验证电子邮件地址,但我正在考虑添加NOT NULL
约束以防止提交空白电子邮件地址。由于每个电子邮件地址都必须是唯一的,因此使e-mail
列成为唯一键似乎是合理的,但仅仅因为列是唯一键并不能使其NOT NULL
正确吗?因为我可能会使用 PHP 验证服务器上的电子邮件地址,所以我也可以检查它是否为空。
我正在制作的一条关键信息是添加唯一键或约束是否会使搜索更快或更慢?
对于包含不应有重复和空字符串/空值等的电子邮件地址的列,是否应将其设为唯一键和/或给予NOT NULL
约束或其他内容?
我对 MySQL 非常陌生,所以代码示例会很有帮助。如果使用起来更容易,我有 phpMyAdmin。
对于我将使用的唯一性 对于我将使用ALTER TABLE USER ADD UNIQUE INDEX(``e-mail``);
的非空ALTER TABLE user CHANGE ``e-mail`` varchar(254) NOT NULL;
我的另一个想法是插入一行带有空电子邮件地址的行,然后使电子邮件列唯一,这样就不能插入其他空电子邮件地址。