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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.09.2014, 13:33   #1  
kitty is offline
kitty
Участник
 
383 / 30 (2) +++
Регистрация: 24.05.2005
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А вторичные ключи в сотне подчинённых таблиц? .
Я согласна со всеми пунктами, и концептуально правильно указывать суррогат как pk, раз уж он fk в других таблицах.
У нас тут немного кавардак, и где как указаны индексы, вот думаю, нужно ли все менять или лучше оставить как есть, раз уже работает.
Поэтому возникают вопросы:

Чего я не понимаю:
1) Что перестанет работать, если я просто укажу SymbolIdx в качестве первичного?
2) Если связи не по суррогатному ключу, а по другому полю, то можно ли оставлять превичным суррогат?
3) Есть ли случаи, когда все связи построены по суррогатному ключу, но нужно указывать другой уникальный ключ в качестве первичного?

Я пока поэкспериментировала и кроме как логического смысла, в поведении системы разницы не вижу в зависимости от того, суррогат первиченным указан или другой уник индекс.
Старый 09.09.2014, 15:11   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от kitty Посмотреть сообщение
1) Что перестанет работать, если я просто укажу SymbolIdx в качестве первичного?
Как минимум на формах, в отладчике и тому подобных местах перестанет работать автоподстановка значения альтернативного ключа (UnitId) вместо значения UnitOfMeasure.RecId, а на ЕИ по RecId ссылается очень-очень много таблиц.
Цитата:
Сообщение от kitty Посмотреть сообщение
2) Если связи не по суррогатному ключу, а по другому полю, то можно ли оставлять первичным суррогат?
Почему нет? Особенно если речь о стандартной таблице. А уж как вы в кастомизациях ссылаетесь на ее записи - это дело ваше.
Цитата:
Сообщение от kitty Посмотреть сообщение
3) Есть ли случаи, когда все связи построены по суррогатному ключу, но нужно указывать другой уникальный ключ в качестве первичного?
Кому нужно? Это чисто гипотетический вопрос?
Цитата:
Сообщение от kitty Посмотреть сообщение
Я пока поэкспериментировала и кроме как логического смысла, в поведении системы разницы не вижу в зависимости от того, суррогат первиченным указан или другой уник индекс.
Разница есть как минимум в работе ReferenceGroup на формах: эти контролы, насколько я знаю, "не умеют" работать по FK, отличным от суррогатных ключей.
Старый 09.09.2014, 16:06   #3  
kitty is offline
kitty
Участник
 
383 / 30 (2) +++
Регистрация: 24.05.2005
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Как минимум на формах, в отладчике и тому подобных местах перестанет работать автоподстановка значения альтернативного ключа (UnitId) вместо значения UnitOfMeasure.RecId, а на ЕИ по RecId ссылается очень-очень много таблиц.
Все работает.
Специально сейчас на unitOfMeasure поставила PrimaryKey = SymbolIdx, и проверила - лукапы в ссылающихся таблицах норм работают, тк связь как была по recId, так она и осталась и используется.

Тут еще узанала, что, если оставить primaryKey суррогатным и если воспользоваться переименованием первичного ключа в контекстном меню, то будет для переименования выдаваться recId, а не уник поле, кот имеет смысл переименовывать для пользователя. Попробовала на бедном unitOfMeasure - действительно, если primary - recId, то для переимования предлагается recid, если заменить на symbolIdx, то можно переименовать саму единицу измерения.

Это так и задумано??? Как же тогда, действительно, переименовывать?
Старый 09.09.2014, 17:47   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kitty Посмотреть сообщение
Это так и задумано??? Как же тогда, действительно, переименовывать?
А что вам не нравится? Если ключом является RecId, то переименование ключа - это замена одного значения RecId на другое. По моему, все логично. Понадобиться такое может разве что при объединении строк (merge).

Что значит действительно переименовать? Для того чтобы изменить не ключ а сами данные никаких хитрых инструментов не нужно.
За это сообщение автора поблагодарили: kitty (1).
Старый 09.09.2014, 18:48   #5  
kitty is offline
kitty
Участник
 
383 / 30 (2) +++
Регистрация: 24.05.2005
Спасибо, S.Kuskov. Вы правы, конечно, это так.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как выгрузить конфигурацию ВСЕГО сервера АХ. Чтобы потом можно было ее использовать на другом сервере(другой компанией) bogdan737 DAX: Администрирование 2 20.05.2013 11:06
зачем нужен ООП в управленческих системах lev DAX: Программирование 23 23.03.2012 15:36
Как заставить отчет в ГФО учитывать сразу несколько аналитик ? George A DAX: Функционал 9 22.07.2011 14:40
axforum blogs: Можно ли снизить стоимость внедрения ERP-системы? Blog bot DAX Blogs 0 11.02.2011 15:11
зачем в dax2009 запретили создавать новые партии и серийники по строке журнала спецификации ? Logger DAX: Функционал 3 05.01.2011 19:18

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

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

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