Показать сообщение отдельно
Старый 12.02.2018, 14:19   #1  
IKA is offline
IKA
Участник
 
359 / 65 (3) ++++
Регистрация: 15.03.2006
RefTableId vs RefTableName - что хранить в таблице?
Есть таблица - лог.
В ней нужно хранить ссылку на запись в другой таблице (события в которой спровоцировали запись в этот лог) и дать возможность пользователю возможность с записи в этом логе перейти на форму с таблицей-провокатором. Также пользователю нужно показать название таблицы (можо не 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