Управление ltree с использованием алгоритма Adjacency List

На самом деле, мне лично смешивание Materialized Path и Adjacency List при использовании ltree представляется сомнительным решением, особенно учитывая то, что в большинстве случаем материализованный путь составляется из ID узлов, и ID родителя получить не представляется сложной задачей. Тем не менее, определенные плюсы от этого есть

Управление «чистым» алгоритмом Materialized Path

Рассматриваем различные способы работы с расширением ltree

Использование расширения ltree в PostgreSQL

ltree является дополнением PostgreSQL и входит в пакет contrib, поэтому изначально оно не включено в стандартный пакет для *nix систем

Управление деревьями Adjacency List

На первый взгляд управление деревом Adjacency List довольно простое, но эта простота, зачастую приводит к определенным проблемам, так очень просто, можно назначить подчинение первого узла второму, а второго первому, что может привести к бесконечному зацикливанию при выборе дерева, можно назначить родителем узла несуществующий ID и тогда ветка полностью выпадет из дерева.

Что такое Adjacency List и как это использовать

Метод хранения древовидных структур данных Adjacency List один из самых простых в понимании, так как узел включает прямую связь с родителем и не перенасыщен избыточными данными.

Nested Sets. Используем триггеры в PostgreSQL

Как удобно делать выборки из деревьев типа Nested Sets, и как не удобно им управлять. Как удобно управлять деревьями типа id->parent_id, но как не удобно и накладно использовать рекурсии при выборках.

Nested Sets. Управление

В данной статье рассматриваем, а как, собственно, можно управлять деревьями Nested Sets

Nested Sets. Правила

Прежде чем начинать работать с деревом, что бы линий раз не наступать на «грабли», определим основные правила

Подпишись что бы быть в курсе

Свежие комментарии