Таблица в базе данных 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;
Еще одна идеи у меня был вставить строку с нулевым адресом электронной почты, а затем сделать столбец электронной почты уникальным так никакие другие нулевые адреса электронной почты не могут быть вставлены.
Вы можете проверить электронную почту с помощью SQL (с использованием пользовательских ограничений), а добавление ключей обычно ускоряет поиск. –
Уникальное ограничение передает ваше намерение лучше, чем уникальный индекс. –
@ MikeSherrill'Catcall 'какая разница? Согласно [здесь] (http://stackoverflow.com/questions/3245328/what-is-the-difference-between-unique-index-and-unique-key) термины являются синонимами. – Celeritas