powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Эмуляция иерархии
15 сообщений из 15, страница 1 из 1
Эмуляция иерархии
    #35204660
DSFC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот к примеру есть таблица номенклатуры какой-нибудь.... и тут пользователю захотелось классифицировать всё это т.е.
Т.е. что-то аналог в 1С - создаются некоторое подобие папок, в них кладётся номенклатура, а в папке можно ещё создать папку, чтобы ещё туда что-нибдь положить.... итак до бесконечности...
вот думаю каким образом можно исполнить подобное в реляционной структуре...
Пока вариант один вертится в голове... сделать хранимую процедуру, а в ней уже заложить создание дополнительной таблицы с внешним ключом на предыдущую....
А ещё можно сосздать обычную таблицу в которой будет дополнительный столбец, в котором будет указан id-шник родительской сторки... а потом прогой пройтись по этой таблице и сгенерировать дерево...
Кто что скажет?
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35204937
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищите по ключевому слову EAV.
p/s/
Прежде чем применять эту модель очень хорошо все взвесте.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35204939
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 1с 7.7 при конфигурировании задавалась максимальная глубина иерархии - это к тому что реализовать красиво и для любой вложенности трудно.
С точки зрения пользователей - лазить по папкам можно если глубина=1.
Если 2 и больше - то ситуация когда в ящичке 10 шкатулочек, в каждой шкатулочке 10 коробочек, в каждой коробочке 10 папочек и пойди найди тот ножичек. Юсеры тогда отключают иерархию и работают напрямую (в 1с это возможно).
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35205095
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyВ 1с 7.7 при конфигурировании задавалась максимальная глубина иерархии - это к тому что реализовать красиво и для любой вложенности трудно.
С точки зрения пользователей - лазить по папкам можно если глубина=1.
Если 2 и больше - то ситуация когда в ящичке 10 шкатулочек, в каждой шкатулочке 10 коробочек, в каждой коробочке 10 папочек и пойди найди тот ножичек. Юсеры тогда отключают иерархию и работают напрямую (в 1с это возможно).
В 1С 7.7 она задавалась, но использовалась только на уровне приложения, на базе это никак не сказывается. То есть если мы меняем количество вложенностей структура базы не меняется. И это "исправили" в 8 версии, там можно указывать также неограниченную вложенность.
При большой вложенности "лазить" по папкам скорее всего не будут, хотя бывает и удобно поискать иерархически. Основная фича в другом. Когда выбираете в некотором отчете движений товара не элемент а папку-группу, то отчет формирует движение всех товаров в этой группе, не важно сколь сложная иерархия. При этом можно с учетом подпапок (итоги по ним) или без. Вот тут интересно подумать о структуре, чтобы можно было писать такие запросы. А в 1С там устроено все просто: поле-указатель на родителя.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35205286
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DSFCВот к примеру есть таблица номенклатуры какой-нибудь.... и тут пользователю захотелось классифицировать всё это
Стандартный подход: таблица номенклатуры какой-нибудь + произвольное количество иерархических классификаторв над ней. Все задается пользователем.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35205291
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DSFCвот думаю каким образом можно исполнить подобное в реляционной структуре...
Все можно решить в одной таблице
Таблица 1IDНазваниеПринадлежитТип
Принадлежит - содержит ID "родительского" элемента
Тип - определяет элемент это или папка (можно и не использовать)
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35207654
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa DSFCвот думаю каким образом можно исполнить подобное в реляционной структуре...
Все можно решить в одной таблице
Таблица 1IDНазваниеПринадлежитТип
Принадлежит - содержит ID "родительского" элемента
Тип - определяет элемент это или папка (можно и не использовать)

Тут есть один тонкий момент. Все зависит от качественного содержания иерархии. Если это иерархия наподобие папок в винде, то такой подход годится. А возможен случай, когда одно дерево представляет иерархии двух и более качеств (это плохо и не всегда очевидно на начальных этапах анализа), или вообще не является иерархией. Например, есть "иерархия" предприятий.
"Предприятия розничной торговли"
- Предприятие 1
- Предприятие 2
- Предприятие 3
- "Магазины"
- - магазин 1
- - магазин 2
"Предприятия легкой промышленности"
- Предприятие 4
- Предприятие 5
- - Филиал 51
- - Филиал 52

В этом дереве есть вершины двух качеств "общность" ("Магазины") и "составная" (Предприятие 5).
Если человек работает на предприятии, относящемся к общности "Магазины", то он работает либо в магазин 1, либо в магазин 2. Если человек работает на Предприятии 5, то это совсем не значит, что он работает в филиале этого предприятия.

Подобных примеров можно привести много.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35208828
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaВсе можно решить в одной таблице
Низзя. Таблиц д.б. мин 2 - собственно номенклатура + классификаторы (м.б. в одной таблице).
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35208832
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kmawПодобных примеров можно привести много.
Список филиалов - это св-во сущности Предприятие
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35209397
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawТут есть один тонкий момент.
что-то я его так и не понял...
Поскольку приведенный тобой пример запросто описывается моей табличкой.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35209411
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модТаблиц д.б. мин 2 - собственно номенклатура + классификаторы (м.б. в одной таблице).
Про классификаторы автор не писал... Разговор изначально шел про описание иерархии.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35209414
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DSFCсоздаются некоторое подобие папок, в них кладётся номенклатура, а в папке можно ещё создать папку, чтобы ещё туда что-нибдь положить.... итак до бесконечности...
Вот же его вопрос.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35209870
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaПро классификаторы автор не писал... Разговор изначально шел про описание иерархии.
Дословно:
DSFCВот к примеру есть таблица номенклатуры какой-нибудь.... и тут пользователю захотелось классифицировать всё это
Между элементами номенклатуры иерархии нет, она вся зашита в классификаторы.
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35210016
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так моя табличка все и классифицирует. Как вариант - добавьте в нее ссылку на ID элемента номенклатуры...
----------
Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Эмуляция иерархии
    #35210253
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsaТак моя табличка все и классифицирует. Как вариант - добавьте в нее ссылку на ID элемента номенклатуры...
Наоборот - номенклатура ссылается на свои классификаторы
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Эмуляция иерархии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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