AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.07.2007, 15:28   #20  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от mazzy
Цитата:
Сообщение от Владимир Максимов
С чисто формальной стороны, то, что используется в AXAPTA и есть суррогатный ключ, поскольку это не есть информационное поле.
Почему это "суррогатный" и почему не информационное?
Когда начинается спор СК vs ЕК у меня возникает вопрос, а о чем собственно спорим? Т.е. где определения того, что понимать под термином "естесственный ключ", а что под термином "суррогатный ключ". Это понятия, которые все "интуитивно" понимают, но как только дело доходит до определений, все смешивается в жуткую кашу.

В конце концов, я сформулировал для себя, что лично я понимаю под этими терминам. Не претендую на истину в последней инстанции, но это помогает понять о чем собственно речь.

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

Естесственный ключ - это поле или набор полей, однозначно идентифицирующий запись при определенных условиях и применяющийся для каких-либо еще целей, кроме однозначной идентификации записи. Естесственный ключ может меняться на протяжении жизни записи.

Меня не интересует ни способ формирования СК или ЕК, ни то, вкладывает ли в них пользователь какой-либо физический смысл или нет. Все это "вторично".

Собственно, в моем понимании СК и первичный ключ практически синонимы. Как именно они формируются: автоинкремент, GUID, номерная серия, ручной ввод - не имеет никакого значения. Если он предназначается и обеспечивает однозначную идентификацию записи всегда и при любых условиях, то для меня это "суррогатный ключ".

Естесственный ключ, кроме целей однозначной идентификации записи, как правило, применяется для чего либо еще. Печати официальных документов, например. Не считая того факта, что он может меняться и обеспечивает идентификацию записи только при выполнении дополнительных условий. Не всегда "прописанный явно". Обычно в этом случае принимаются некие "условия по умолчанию".

Используемые в AXAPTA ключи, с моей точки зрения, полностью соответсвуют моему пониманию того, что есть "суррогатные ключи". Служат только и исключительно для целей однозначной идентификации записи и не могут меняться на протяжении всего времени существования записи.

Теперь, почему "не информационные"?

Здесь я опять исхожу из назначения полей. Если поле служит для целей однозначной идентификации записи, то его содержимое - это всего-лишь способ идентифицировать запись. Никакой дополнительной информации оно не несет.

Если пользователь "видит" за содержимым поля некую дополнительную информацию - это его личное дело. Вопрос привычки. Некоторые пользователи "видят" все что им нужно по порядковому номеру, некоторые - по условным сокращениям или аббревиатуре.

Для новичка, впервые увидевшего этот код ни порядковый номер, ни обозначение "Светик" - ничего не говорят. Ему в любом случае необходимо будет открыть справочник и посмотреть, что же именно скрывается за этим обозначением.

Помнится, было бурное обсуждение по поводу древовидных справочников. Так вот, идентификатор записи - это то же самое. Удобно, но только для того человека, который точно знает, что "скрывается" за той или иной веткой или кодом записи.

Именно поэтому я и называю такие поля "не информационные". Они требуют "расшифровки". Сами по себе никакой информации, кроме однозначной идентификации записи не несут.
За это сообщение автора поблагодарили: Kabardian (3).
Теги
естественный ключ, искусственный ключ, как правильно, ключ, суррогатный ключ, crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Абстрактный классификатор Maxim Gorbunov DAX: Программирование 52 17.01.2005 13:52
Централизованные справочники ZVV DAX: Прочие вопросы 12 02.09.2004 13:42
А есть ли в Аксапте стандартные российские справочники? edd DAX: Функционал 11 22.07.2003 05:49
Как заполнять основные справочники? renat DAX: Функционал 9 13.11.2002 17:39

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:41.