Определение первичного ключа:
- Первичный ключ -
unique
.
- Первичный ключ -
not null
.
- Таблица имеет только один первичный ключ.
Вы спрашиваете о третьем условии. Ну, это определение. «Первичный ключ» - это отдельный набор ключей, которые были явно выбраны для уникальной идентификации каждой строки в таблице. Слово «основной» подразумевает, что в таблице только один. Другие клавиши или комбинации клавиш, которые удовлетворяют первым двум условиям, называются кандидатами в первичные ключи .
Хотя не строго соблюдаются, первичные ключи являются лучшим методом для ссылки на отдельные строки. Они должны использоваться, например, для ограничений внешнего ключа (и любая база данных, с которой я вступаю в контакт, применяет первичные ключи для ограничений внешнего ключа). Наличие нескольких разных ключей, ссылающихся на одну таблицу, приводит в замешательство модель данных. Подумайте о моделировании сущности-отношения. Ссылки должны быть первичными ключами.
Чтобы дать представление об использовании первичных ключей, некоторые базы данных (например, MySQL, использующие механизм хранения InnoDB) по умолчанию используют таблицы кластеров на основе первичного ключа. Таблица может быть кластеризована только один раз, поэтому используется один ключ.