powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уважаемый All (вопрос по поводу денормализации дерева)
5 сообщений из 5, страница 1 из 1
Уважаемый All (вопрос по поводу денормализации дерева)
    #32035206
man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
man
Гость
нужна таблица из след колонок
группа, подгуппа1, подгруппа2, элемент
проблема: если элемент лежит в конечной
подгруппе все ок
т.е.
группа, подгуппа1, подгруппа2 IS NULL, элемент
или
группа, подгуппа1, подгруппа2, элемент
но
если
группа, подгуппа1 содержит элемент,
а подгруппа2 НЕ NULL
тогда теряю элемент
строю из 2 представлений одно по группам второе по элементам.
Что скажите? Заранее спасибо
если не сложно пошлите на мыло alex_var@hotmail.com
...
Рейтинг: 0 / 0
Уважаемый All (вопрос по поводу денормализации дерева)
    #32035209
Gena G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты уверен что тебе надо именно ТРИ колонки с сылками на группы?
...
Рейтинг: 0 / 0
Уважаемый All (вопрос по поводу денормализации дерева)
    #32035215
man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
man
Гость
:)))
я знаю глубину вложенности заранее
нужно как бы разложить
группы так
группа (корень)
группа подгруппа1
группа подгруппа1 подгруппа2

при получении групп
используюю объединение LEFT OUTR JOIN
И ПОЛУЧАЮ
группа подгруппа1 подгруппа2

слегка в тупике :)))
...
Рейтинг: 0 / 0
Уважаемый All (вопрос по поводу денормализации дерева)
    #32035220
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO (если я только правильно понял), высвеченная проблема не является проблемой написания SQL-скриптов. Это в большей степени концептуальная проблема, с которой я столкнулся, когда пытался по человечески вести справочники в 1С:Предприятии. Дело в том, что в иерархических справочниках 1С разрешается помещать на одних уровнях и простые элементы (листья дерева), и группы. Правильнее сказать, не на одних уровнях, а у одной и той же родительской группы в подчинении могут оказаться и подгруппы, и простые элементы. Нет, с точки зрения древесной теории, тут никаких нарушений нет. Но с точки зрения систематизации подобного дерева возникает множество проблем, лишь одна из которых - задача, озвученная man.
Я считаю (причем, категорически), что в иерархическом справочнике у одной родительской группы не может и не должно быть НИКОГДА одновременно подгрупп и простых элементов. А если они есть, то это просто от сумбура в чьей-то голове. Нельзя помещать новую номенклатурную единицу в корень дерева просто потому, что под нее в дереве нет подходящих групп. Необходимо сначала завести нужные группы и подгруппы (сразу продумав их иерархию на случай появления еще каких-либо экземпляров подобной же номенклатуры), а уж потом помещать листья в самые нижние уровни данной структуры.
В 1С я пытался разработать самопаольные механизмы контроля корректности структуры дерева. И столкнулся с багами, которые 1С не захотела устранять (видимо, я такой единственный уникум, который захотел иметь не просто сумбурное дерево, а дерево, построенное по четким правилам). В разрабатываемых ныне приложениях я в обязательном порядке включаю механизмы контроля логической структуры дерева, исключающую подобную ситуацию уже на этапе добавления в него новых записей.
Может возникнуть вопрос: как быть, если запись НУ ПРОСТО ДОЛЖНА попасть на один уровень с группами? Ответ: просто создать еще одну группу и поместить ее в эту группу.
Пример. Есть в справочнике номенклатуры чайники. На определенном уровне кто-то их решил подразделить по материалу, из которого они изготовлены. В результате, залезший в дерево видит:
- Чайники
--- Алюминиевые
--- Медные
--- Стальные
--- Стеклянные
А ему нужно добавить чайник, у которого дно стальное, бока стеклянные, а крышка вообще деревянная. Что делать? Юзер-тормоз возьмет, и добавит на этот же уровень лист дерева - чайник стеклянно-деревянно-стальной.
А умный добавт группу "прочие", и добавит уже лист дерева в эту группу. В результате избавит себя и тебя от огромного количества проблем, например, от этой.
...
Рейтинг: 0 / 0
Уважаемый All (вопрос по поводу денормализации дерева)
    #32035230
man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
man
Гость
:)))))
Абсолютно согласен с Garya!
Баг это или не баг я не могу сказать.
Может для разработчиков 1с это не баг.
Но при ведении базы под 1с надо это учитывать.
Думаю даже скорость работы со справочником
может увеличиться.
Но из спортивного интереса хотелось бы
поднять в запросе и кривое дерево.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уважаемый All (вопрос по поводу денормализации дерева)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]