powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
10 сообщений из 10, страница 1 из 1
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36219606
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброй ночи!
Помогите, пожалуйста, студенту разобраться вот с такой темой (задачей) для дипломной работы.
-----------------------------------------------------------------------------------------------------
Постановка задачи.

Разработать методику, позволяющую максимально быстро выбирать всех потомков (или предков) заданной записи или группы записей, в том числе и потомков (или предков) удаленных от заданной записи на заданное число шагов или вплоть до низа(конца) иерархической лестницы.

Дополнение.
Другими словами, например, есть работник по имени John, и необходимо вывести его подчиненных, подчиненных его подчиненных и так далее, до тех пор, пока не дойдем до низа иерархической лестницы(или заданной вложенности). Вся соль в том, что у работника Johnа может быть большое число подчиненных(т.е. без ограничения), так же и у его подчиненных может быть большое число подчиненных (т.е. без ограничения) и т.д. до конца иерархической цепочки. Кроме того, если работник John уволился из организации, необходимо модифицировать связи.

Замечания.
В качестве инструментария рекомендовано использовать бесплатную (условно бесплатную) реляционную базу данных, например MySQL.

-----------------------------------------------------------------------------------------------------

Как я понимаю, иерархия представляет собой - ацикличный ориентированный граф (возможно ошибаюсь). Порылся в поиске, нашел некоторые решения, но возможно, сейчас существую иные, более эффективные решения поставленной задачи. В сети, нашел метод основанный на “Карте Путей”, т.е. создается таблица RelationMap, хранящая все пути между любыми связанными записями, и так же нет информации о его эффективности.

Подскажите, пожалуйста, в какую сторону копать, чтобы меньше топтаться по граблям, “изобретая велосипед”. Возможно есть какая-то литература по данной теме.
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36219630
taper_mobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
capscom, есть подозрение, что то, как идеологически правильно, и то что нужно для эффективной работы в конкретном случае это зачастую разные вещи.

Как вариант - таблица NxN для N сотрудников. Где пересечение строки и столбца показывает силу связи между сотрудниками. 1- непосредственное подчинение, 2 - через одного, -1 - обратное подчинение. Дорого по объему данных, но должно быть достаточно эффективно выбирать указанную иерархию :)
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36219632
taper_mobile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
capscom, невнимательно читал ваше исходное сообщение, видимо это и есть эта самая карта путей.
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36221354
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот если не упираться в реляционные базы данных, то какие бы типы БД было бы верно использовать под такую задачу?
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36221369
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто планируются большие нагрузки и множество связей.
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36221694
capscomПросто планируются большие нагрузки и множество связей.это вам пожалуй в раздел "сравнение СУБД"
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36221937
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
capscomРазработать методику, позволяющую максимально быстро выбирать всех потомков (или предков) заданной записи или группы записей, в том числе и потомков (или предков) удаленных от заданной записи на заданное число шагов или вплоть до низа(конца) иерархической лестницы.

Графы хорошо обрабатываются рекурсивными функциями
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36222322
deleted_2ks3ax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитайте про nested sets и еще вот тут .
Nested sets идеально подходят для быстрых выборок, но если задача подразумевает много вставок/изменений/удалений узлов, то могут возникнуть проблемы.
----
Think twice before you press F5.
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36223745
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ap0k, спасибо!!! - возьму алгоритм на заметку.
_мод, а рекурсивность на уровне бд (если, например, речь идет об Oracle XE) как сказывается на производительности на большом графе?
...
Рейтинг: 0 / 0
Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
    #36224208
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
capscom а рекурсивность на уровне бд (если, например, речь идет об Oracle XE) как сказывается на производительности на большом графе?
Я имел ввиду рекурсию на программном уровне - обход графа. На уровне СУБД Oracle имеет иерархические запросы - вполне производительные.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Эффекстивная выборка по иерархии записей в РБД и задание самой иерархии
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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