Как отличить строки друг от друга в таблице базы данных? - PullRequest
3 голосов
/ 20 февраля 2010

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

Но так как тип данных поля имени равен varchar, это повлияет на производительность, поскольку сравнение varchar данных друг с другом отнимает много времени по сравнению с числовым полем.

Поэтому я хочу, чтобы каждая запись имела уникальное числовое поле (скажем, id). Но если я сделаю id в качестве первичного ключа, то более чем одна запись может содержать один и тот же name.

Какое решение вышеуказанной проблемы?

Ответы [ 2 ]

4 голосов
/ 20 февраля 2010

Вы все еще можете создать ограничение UNIQUE в поле name:

ALTER TABLE your_table ADD UNIQUE (name);

Ограничение UNIQUE, как и ограничение PRIMARY KEY, гарантирует, что ваш столбец будет содержать только уникальные значения.

Обратите внимание, что в таблице может быть много ограничений UNIQUE, но только одно ограничение PRIMARY KEY.

0 голосов
/ 20 февраля 2010

Имя можно сделать уникальным индексом.

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