MySQL уникальный дизайн индексов - PullRequest
0 голосов
/ 20 августа 2009

Спасибо всем за ответы.

Я учусь по ходу дела - так что я учусь, но у меня еще долгий путь. Для работы мы в основном используем MySQL для наших баз данных - веб-разработки. У меня вопрос по поводу уникальных индексов - когда их правильно использовать и как.

Я уверен, что довольно хорошо понимаю их цель - объявить столбец как столбец «без дубликатов», то есть никакое значение не может существовать дважды в таблице для этого конкретного столбца. Если попытка вставить / обновить нарушает это правило индекса, произойдет сбой.

Я создаю пользовательскую систему для сайта и разрабатываю таблицы базы данных для системы. Одна таблица является «пользовательской» таблицей - содержит пользователей

users
-----------------
int(4) usersID primary key
varchar(255) lastName
varchar(255) firstName
varchar(255) email unique
varchar(255) password

Я создал уникальный индекс для «электронной почты», потому что каждое электронное письмо должно быть разным для каждого пользователя - оно будет использоваться для входа в систему. Однако я также хотел бы создать уникальный индекс для 'lastName', 'firstName' и 'email', потому что ни у одного пользователя не должно быть одинаковой комбинации этих трех. Должен ли я создать другой уникальный индекс для этого правила или просто создать один для этих трех? Разве плохо повторять столбцы в индексах?

1 Ответ

6 голосов
/ 20 августа 2009

Хотя в некоторых случаях неплохо иметь столбец с несколькими индексами, это излишне для того, что вы пытаетесь сделать.

Поскольку вы не разрешаете дублирование адреса электронной почты, никто не сможет отправить дубликат первого / последнего / сообщения электронной почты, поскольку он уже не пройдет УНИКАЛЬНУЮ проверку по электронной почте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...