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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.09.2004, 11:41   #20  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано Владимир Максимов
Дерево... Да... Думаю mazzy Вас пошлет... надеюсь по ссылке...
Да знаю, знаю. Неоднократно видел его мнение по данному вопросу, и... даже уважаю его.

Цитата:
Я с AXAPTA работаю всего полгода, но даже с таким опытом вижу, что Вы себе нажили гемморой на долгие годы вперед. Коламбус, конечно, молодцы, но их цель - это зарабатывание денег, а не объяснение клиентам почему так делать нельзя. И денег на Вас они заработают много...
Се ля ви, се ля бизнес. Я к сожалению точно так же как и коламбус не могу влиять на требования начальства и бизнес-процессы нашей фирмы, приходится выполнять то что приказывают выполнять.

Цитата:
Ладно, если опустить эмоции, то попробуйте в Вашей таблице InventClassifierRelations для каждого узла дерева делать ссылку на самого себя. Т.е. это будут строки у которых ParentId=ChildId и Level=0
Тогда запрос будет элементарен...
Мне кажется решение Vadik-а более элегантно. Добавлять дополнительные ссылки не надо, а EXISTS всё равно должен сработать правильно (если я правильно понимаю SQL и реляц. алгебру).

Цитата:
PS: Мне интересно, как с такой (...) структурой таблицы InventClassifierRelations Вы делаете перемещение узла? Удаление и вставка - это легко, а вот передвинуть ветку со всеми узлами при такой структуре ...
Вообще то это и есть то место, коим данный метод "жертвует" ради скорости и простоты в других местах. Именно здесь проявляется его "корявая древовидная сущность", но на самом деле всё не так уж и плохо - просто надо удалить все записи в InventClassifierRelations, относящиеся к данному узлу и всем его подузлам (1 операция select и n операций delete, где n - число строк вернувшееся select-ом), изменить данные в таблице InventClassifer и запустить рекурсивную процедуру rebuildClassifierRelations для перемещенного узла (выполняется за m * (1 select + n insert), где m - число подузлов в узле, n - число строк в результате select-а.
У нас размер этого классификатора где то 15 элементов на 1-ом уровне и в среднем по 5-10 элементов на остальных подуровнях, так что не всё так уж и плохо.
А вообще то операция перемещения групп настолько редкая штука, что я её даже не реализовывал еще.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
переделать запрос sql hated8 DAX: Программирование 28 16.01.2009 16:49
palleagermark: Change the appearance of printed report ranges Blog bot DAX Blogs 1 27.05.2008 21:21
palleagermark: Dynamic date ranges in queries Blog bot DAX Blogs 8 07.05.2008 17:03
Проверка возможности калькулирования Migel_84 DAX: Функционал 0 21.02.2006 09:44
Возможности InterCompany George V. Tavrizoff DAX: Функционал 3 30.03.2004 11:50

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

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

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