@nApoBo3

Как реализовать быструю выборку по данным привязанным к узлу дерева?

Есть дерево. У него достаточно плоская структура, на данный момент уровень вложенности от корня составляет 4 и думаю вряд ли будет расширятся далее 6, да и 6 мало вероятно.
На каждом уровне у узла от 0 до 20 потомков, в среднем не более 5. Всего около 500 узлов.
У каждого узла имеется int идентификатор.
К каждому узлу привязываются документы.
Необходимо в свойства документа записать поле которое позволит по идентификатору узла выбрать документы относящиеся к этому узлу и всем его дочерним узлам.
По этому полю должен быть быстрый поиск с использованиеv индексов, поскольку документов достаточно много, это конечно не bigata, но речь идет о миллионах документах и быстром поиске.

Есть ли готовое решение для подобной задачи на postgres? Сейчас смотрю в направлении ltree и полей для хранения ip адресов( структура очень похожа на ip адреса и подсети ).

PS: Сейчас данные подходящие под запрос уходя на backend и там дополнительно фильтруются, но это не очень вариант, приходится гонять много лишних данных, плюс оперировать множествами на уровне DB все таки несколько удобнее.
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Переходите в дереве от Adjacency LIst к Nested Set или Materialized Path.
И тот и другой вариант позволяют быстро выбрать все дочерние узлы дерева на полную глубину.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы