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

Результаты опроса: Какой метод связи нескольких таблиц Вы предпочитаете?
Тип связи задается енумом. Значение связи в одном поле 8 53.33%
Связь задается в отдельных полях. Тип связи определяется заполненностью полей 3 20.00%
Мне все равно. Как сделают постановку задачи так и будет 4 26.67%
Голосовавшие: 15. Вы ещё не голосовали в этом опросе

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.08.2018, 13:25   #13  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вы перепутали причину и следствие

Цель организации связи между таблицами в среде Axapta - это обеспечение некоторого автоматизма при написании модификаций. Например, при переходе к основой таблице через контекстное меню (по правой клавише мыши на поле в форме). Т.е. "тупо" для того, чтобы разработчику меньше кода писать надо было.

Цель использования Base Enum - это указание некоторого реквизита текущей записи таблицы

Тот факт, что Base Enum может быть указан в Relation - это "фича". Особенность. Вспомогательный, не основной, инструмент разработки

Предположим, у таблицы могут быть указаны "Сайт" и "Склад". Два поля.

1. Если заполнены оба поля, означает ли это, что данная запись не может быть применима ко всем другим складам этого же сайта?
2. Если поле Склад пустое - это ошибка ввода или запись применима ко всем складам указанного сайта?

Вы не может однозначно ответить на эти вопросы. Всегда будет некоторый элемент неопределенности. Всегда будет сомнение в корректности ввода данных.

Т.е. Вы вынуждены будете все-равно добавить еще одно поле Base Enum для того, чтобы однозначно идентифицировать соответствующее свойство записи

Замечу, что начиная с версии Ax2012 связь более чем по 1 полю считается устаревшей. Оставлена для обратной совместимости и облегчения перехода разработчикам на новые версии. Сделать-то можно, но проверка по Best Practices будет ругаться нехорошими словами, что, дескать, так не надо

Т.е. в данном примере в Ax2012 по Best Practices как раз и надо будет сделать 3 поля: Base Enum, Сайт, Склад. И Relation будет по каждой таблице в отдельности + Base Enum как идентификатор того, с чем работать надо


Можно, конечно, рассматривать Base Enum как некую альтернативу использования TableId. Но следует иметь в виду, что в этом случае критерием связи становится не физическая сущность (таблица), а некая логическая сущность (документ или тип документа).

Совсем не обязательно, что разные значения Base Enum - это разные таблицы. Это вполне могут быть одни и те же таблицы, но являющиеся разными "документами". Например, разные типы складских журналов. Ну, или классический InventTableModule
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Pandasama (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отображение связи n:n на форме mazzy DAX: Программирование 22 16.03.2011 16:19
Вопрос на подумать Vitali_i DAX: Программирование 2 01.02.2008 17:16
Вопрос по Проектам PSA DAX: Функционал 35 19.01.2007 22:26
Теоретический вопрос - все таки, как хранятся формы по с лоям? Romb DAX: Программирование 2 01.06.2005 08:35
расчеты с персоналом. НДФЛ. вопрос чайника shumelka DAX: Функционал 2 25.03.2004 11:36

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

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

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