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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2018, 10:32   #10  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
Цитата:
Сообщение от IKA Посмотреть сообщение
Есть таблица - лог.
В ней нужно хранить ссылку на запись в другой таблице (события в которой спровоцировали запись в этот лог) и дать возможность пользователю возможность с записи в этом логе перейти на форму с таблицей-провокатором. Также пользователю нужно показать название таблицы (можо не Label , а TableName)

Таблиц-провокаторов несколько, поэтому в логе нужно хранить RefTableId+RefRecId или же RefTableName+RefRecId

По идее, вроде, обычно в Ax практикуется хранить связку RefTableId+RefRecId , но
1) Если я буду сохранять tableId, то все равно надо display-метод писать, чтобы показать RefTableName на grid формы, то есть, доп накладные расходы. Плюс, мне кажется, что такой метод не будет даже кэшироваться, тк это метаданные (см пример в AifCorrelation форме).
2) Вероятность, что кто-то имя таблицы поменяет - мала, а вот ID-конфликтов, намного выше, поэтому хранить RefTableName кажется надежней

В пользу RefTableId вижу размер поля на стороне DB (int vs nvarchar)....

Почему чаще используется подход хранить RefTableId? Я, быть может, упускаю что-то из виду? Как посоветуете сделать?

Спасибо

AX2012 R3
А вариант с Enum, как в таблице InventTransOrigin, например, чем не устраивает?
Возникновение потребности хранить в БД tableId или classId - первый признак design error. Редкий пользователь попросит вывести ему на форму внутренний идентификатор таблицы или ее системное имя. Как правило, это решение программиста или консультанта, которые смотрят на мир через AOT и которым, соответственно, так проще. Пользователь, обычно, предпочитает видеть человеческое название соответствующего документа или справочника.

К тому же, использование enum дает возможность разделить документы, использующую одну и ту же таблицу (складской журнал проводка от складского журнала инвентаризации или журнал платежей от журнала кассовых ордеров).
__________________
Dynamics AX Experience
За это сообщение автора поблагодарили: mazzy (10).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтрование записей при "переходе к основной таблице" demID DAX: Программирование 10 18.11.2015 12:52
Переименование полей в одной таблице на основе данных из другой niksen DAX: Программирование 1 14.09.2011 12:34
Как лучше хранить ссылки на записи - (RefTableId, Company, RefRecId) mazzy DAX: Программирование 41 08.07.2011 13:18
Как хранить RTF или DOC в таблице listener DAX: Программирование 6 01.08.2003 19:25
фильтр по связанной таблице mick_777 DAX: Программирование 13 21.08.2002 16:00

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

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

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