Составной первичный ключ

Larson

Новичок
Составной первичный ключ

Привет!

У меня вопрос из теории БД. Когда надо использовать составной первичный ключ? Ведь качестве ключа можно использовать уникальную последовательность, а для обеспечения целостности данных - уникальный индекс по тем полям. В этом случае получается меньший обьем хранимой информации, т.к. в связанную таблицу вставляется одно поле.
Единственный вариант какой я вижу - при поиске по составному ключу в связанной таблице не надо вязать таблицы между собой. Так ли это?
 

Crazy

Developer
Re: Составной первичный ключ

Автор оригинала: Larson
У меня вопрос из теории БД. Когда надо использовать составной первичный ключ?
Ровно в тех случаях, когда запись уникально идентифицируется не одноим полем, а набором полей.

Ведь качестве ключа можно использовать уникальную последовательность
Есть две школы проектирования структуры БД: на естественных и на синтетических ключах. Искусственное добавление в каждую таблицу упомянутого тобой поля относится ко второй школе.
 

Larson

Новичок
Crazy, понятно. А в чем преимущества и недостатки той или иной школы? (Понятно, что зависит от задачи, но так, в общем плане.)
 

Yurik

/dev/null
Школа ЕК отжывает во всех направлениях.
Наведу яркий пример. Все буржуйные библиотеки делают учет книг по ISBN (PRIMARY KEY) и инвентарный учет по уникальных инв. номарах (PRIMARY KEY) по которых делают уечт приема-выдачи литературы.
При апробации мной одной из таких систем было выявлено полное несоостветствие реалиям.
Большинство советских книг не имели ISBN. Встречаются книги которые имеют по несколько ISBN. Для некоторых книг нету знаечений (NULL) т.к. учет был сделан некачественно.
Инвентарные номера не должны, но в связи с недостатками бумажного учета все-таки дублировались, особенно при объединении ведомственных фондов.
При переработке системы и введении СК все стало на свои места.
 
Сверху