Показать сообщение отдельно
Старый 03.07.2007, 10:54   #17  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
С чисто формальной стороны, то, что используется в AXAPTA и есть суррогатный ключ, поскольку это не есть информационное поле. В смысле, поле, содержащее некую осмысленную информацию о сущности. Это просто идентификатор записи.

Другое дело, что, как правило, суррогатный ключ используется для внутренних механизмов обеспечения ссылочной целостности и пользователю не показывается. Пользователь видит как раз "Имя", а не "Код".

А в AXAPTA пошли более простым путем - дали пользователю возможность напрямую как просматривать, так и вводить коды записей. Поэтому возникла иллюзия того, что это "естесственные ключи". На самом деле это не так. И об этом надо всегда помнить.

Где-то здесь была ссылка на статью Mazzy по поводу поиска по внешнему ключу в связанном справочнике. Не могу найти.

Суть в том, что таблица-справочник цепляется по JOIN к основной таблице и в Grid отображаются напрямую поля из таблицы-справочника. Никаких дисплейных методов и дополнительных полей.

Работают все штатные механизмы поиска и фильтрации. Более того, через расширенное окно поиска можно задать критерии отбора по полям, не отображаемым на форме.

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