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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.07.2007, 10:00   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Термины.

Искусственный ключ -- сгенерированный ключ, который используется пользователем и внутри базы данных (например, EmplID)

Суррогатный ключ -- сегнерированный ключ, который используется только внутри базы данных.

Точки зрения сторонников EK и СК изложены тут:
СК: Natural Keys Versus Artificial Keys by Tentser (Russian)

ЕК: Ключ или отмычка

Цитата:
Сообщение от mazzy Посмотреть сообщение
занимается выводом наименования автоматически.
И слава богу, что не занимается.
Потому что простой select по одной таблице автоматически превратился в грандиозный запрос с кучей join'ов.
Я предлагаю, чтобы автоматизм был опциональным. Все равно, в очень большом количестве мест надо делать вывод этих названий, и дбулировать код одиноковый по структуре - не лучшее решение.

Цитата:
Ты видимо с 1Сv8 не работал и не видел ошибку "в запросе не может быть более 256 таблиц...". В последних релизах патч сделали - собирают несколько разных запросов.
Это уже вопрос механизма. Можно, например, реализовать дисплей методами вывод наименований а при фильтрации по ним джоинить или подзапросить.

Еще мне очень нравится понятие graceful degradation -- делаем что можем, если что-то не можем, то делаем только это.

Например, если формировальщик запроса видит, что количество таблиц в джоине превышает 256, то он реализует вывод наименований дисплей методами, причем только тех, которые мешаются.

Цитата:
И добавлю еще: там где это действительно нужно, Аксапта нисколько не мешает программисту добавить свои join'ы, чтобы показать наименование.
1. Она мешает ограничением на 7 джоинов
2. Она не дает фильтровать по аутерджоинам

Цитата:
Ай-ай-ай... Ну, не создает эта собака дополнительные запросы.
Оставляет на откуп программисту. Вот ведь сволочь то какая...
я предлагаю опционально. По факту многие (и я сам в том числе) пишут вот такие дисплей методы:

X++:
display InventName inventName()
{
      return InventTable::find(this.ItemID).Name;
}
здесь собака аксапта выбирает все поля а не только Name. Так что вредные автоматизмы по факту присутствуют все равно.

Цитата:
А ты считал сколько наименований надо приджойнить для того, чтобы показать например номенклатуру?
Нет? Посчитай.
Повторюсь:
1. Опционально
2. Не обязательно джоинить

Цитата:
Ай-ай-ай... А в запросе CTRL+F3 добавить таблицу руками и записать запрос никак?
Блин, ей богу не ожидал.
А было бы плохо, если бы то же самое можно было бы сделать более удобно?

Цитата:
Ни в коем случае не программировать как говорят некоторые.
Или программировать в крайнем случае, когда клиент уж совсем уперся. Но четко осозновая, что для каждого наименования получится дополнительный join. Со всеми вытекающими последствиями для производительности.
Спасибо за ответ и за ссылки.

Вопрос про ЕК такой: что вы делаете когда он меняется? Например был клиент "Светик" а стал "Мотылек"? Или изменилось структура групп номенклатуры вместо

ПЛ0001 (Группа "плюшевые игрушки", изделие 0001 "Медвежонок "Миша"")
МЛ0001 (Группа "плюшевые игрушки для младшего возраста", , изделие 0001 "Медвежонок "Миша"")

переименовываете первичный ключ, даже если он участвует в InventTrans и иногда его надо сопоставлять с распечатанными год назад документами?
За это сообщение автора поблагодарили: Logger (1).
Теги
естественный ключ, искусственный ключ, как правильно, ключ, суррогатный ключ, crm2011

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Абстрактный классификатор Maxim Gorbunov DAX: Программирование 52 17.01.2005 13:52
Централизованные справочники ZVV DAX: Прочие вопросы 12 02.09.2004 13:42
А есть ли в Аксапте стандартные российские справочники? edd DAX: Функционал 11 22.07.2003 05:49
Как заполнять основные справочники? renat DAX: Функционал 9 13.11.2002 17:39

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

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

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