'Стиль программирования Джо Селко ...' и IDENTITY

ISergey
Дата: 12.09.2006 12:58:54
Просматривал публикации авторов и наткнулся на пункт
6.5.4. Язык объявления данных.
В этом пункте сказано:
"Автонумерация не может использоваться в качестве реляционного ключа".
Дальше идет обоснования тезиса, причем иногда в возмутительном тоне.

Понятно, что при переносе данных возникнут трудности, поэтому желательно как можно реже использовать автоинкремент. Но при полном отказе также есть проблемы. Например, таблица, содержащая сложный логический ключ из 4-5 полей, да еще с подчиненной таблицей (да не одной)! Мне что, в подчиненную таблицу их заталкивать? И в запросах жуткий JOIN ?

По моему опыту IDENTITY лучше не использовать, но иногда это поле может быть псевдонимом комплексного ключа. Естественно, при этом не забыть установить UNIQUE AlternateKey !!!

Я не прав?
Кот Матроскин
Дата: 12.09.2006 13:01:33
обсуждали тут уже статью, и не раз - пробуйте поиск.
Glory
Дата: 12.09.2006 13:03:12
Из классики - "Если звезды зажигаются, то это кому-то нужно"
ISergey
Дата: 12.09.2006 13:10:40
Воспользовался поиском ... Тема закрыта !
Всем сп.
Александр Гладченко
Дата: 12.09.2006 15:13:56
ISergey
Воспользовался поиском ... Тема закрыта !
Всем сп.


Ну почему же закрыта :)

Джо - это один из апологетов реляционной теории и её стандартов. Он может убедительно доказать, почему вредно использовать подобные ключи... Но! Производители СУБД имеют свои резоны для реализации или не полной реализации требований стандартов и порой даже посмеиваются над отцами - основателями :) http://blogs.msdn.com/khen1234/archive/2006/08/25/724253.aspx
ИМХО, лучше опираться на рекомендации разработчиков каждой конкретной СУБД, которые точно знают, какие ключи они оптимизировали, а какие у них не получилось

Картинка с другого сайта.