2009-08-20 4 views
0

Благодарим вас за все ответы.MySQL Уникальный дизайн индексов

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

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

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

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

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

ответ

6

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

Поскольку вы не разрешаете дублировать адрес электронной почты, никто не сможет отправить дубликат первым/последним/электронным письмом, поскольку он уже не сможет выполнить проверку UNIQUE по электронной почте.

Смежные вопросы