Показать сообщение отдельно
Старый 06.12.2012, 13:01   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,711 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Термины "суррогатный" и "естесственный" ключи - не есть термины теории реляционных баз данных. Это значит, что каждый вкладывает в это понятие некий свой собственный, "сокровенный" смысл. Лично я для себя даю такое определение

Суррогатный ключ - это идентификатор записи, сформированный внутри приложения и никак, никоим образом, не (!) зависящий от "внешнего мира".

Естесственный ключ - это идентификатор записи, пришедший из вне приложения и зависящий (!) от "внешнего мира". Т.е. если значение ключа поменялось во вне приложения, то его надо будет изменить и внутри приложения.

Т.е. для меня "суррогатный" отличается от "естесственного" только фактом зависимости его значения от "внешнего мира". И на этом все. Никакие другие характеристики не имеют никакого отношения к его "суррогатности" или "естественности". В том числе и способ формирования.

Какая разница как именно он был сформирован? Из номерной серии или введен руками. Например, ИНН (номер паспорта, ГТД, код города) - это номерная серия или руками вводился? А если по умолчанию код записи справочника формируется из номерной серрии, но Вы можете его изменить в момент создания записи - код перестает быть суррогатным? Т.е. часть записей таблицы имеет суррогатный ключ, а часть естесственный?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...