![]() |
#10 |
MCTS
|
Цитата:
Сообщение от 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 Возникновение потребности хранить в БД tableId или classId - первый признак design error. Редкий пользователь попросит вывести ему на форму внутренний идентификатор таблицы или ее системное имя. Как правило, это решение программиста или консультанта, которые смотрят на мир через AOT и которым, соответственно, так проще. Пользователь, обычно, предпочитает видеть человеческое название соответствующего документа или справочника. К тому же, использование enum дает возможность разделить документы, использующую одну и ту же таблицу (складской журнал проводка от складского журнала инвентаризации или журнал платежей от журнала кассовых ордеров).
__________________
Dynamics AX Experience |
|
|
За это сообщение автора поблагодарили: mazzy (10). |