Зачем может понадобится добавлять первичный ключ с двумя значениями?
Зачем может понадобится добавлять первичный ключ с двумя значениями?
пример запроса:
mysql_query("ALTER TABLE cities
ADD CONSTRAINT ex PRIMARY KEY (id, id2)
Спасибо.
Зачем может понадобится добавлять первичный ключ с двумя значениями?
пример запроса:
mysql_query("ALTER TABLE cities
ADD CONSTRAINT ex PRIMARY KEY (id, id2)
Спасибо.
Составные ключи могут быть полезны для таблиц, которые содержат связи между сущностями. Например, у нас есть следующие таблицы: Студенты
, Предметы
и Оценки
.
Таблица Оценки
связывает студентов с предметами и содержит оценки студентов по предметам: СтудентИд
, ПредметИд
, Оценка
. Казалось бы, очевидным будет сделать суррогатный первичный ключ: СтудентПредметИд
. Но тогда может возникнуть проблема неконсистентных данных: будет возможно одному студенту поставить две разных оценки по одному и тому же предмету. Например:
СтудентПредметИд СтудентИд ПредметИд Оценка
1 1 1 3
2 1 1 5
В этом случае пригодится составной ключ (СтудентИд, ПредметИд)
, которого будет достаточно для идентификации записи.