Персональные блоги → [Вебинар] Представление иерархических структур в реляционных БД
Любому опытному разработчику известно, что с ростом проекта также растет сложность используемых структур данных и взаимосвязи элементов. Порой попытки самостоятельно формализовать и представить эти структуры данных в реляционных БД заканчиваются достаточно плачевно с точки зрения производительности.27 января (четверг) Сергей Томулевич, руководитель группы разработки UGС-сервисов компании Рамблер, откроет цикл вебинаров на тему представления иерархических структур в реляционных БД. В первом вебинаре Сергей затронет тему представления древовидных структур в базах данных и детально рассмотрит модель представления Adjacency List.
Время проведения семинара — 13:00-15:00. Участие в вебинаре бесплатное, но требуется пройти предварительную регистрацию.
Алгоритмы → Нерекурсивная выборка всего дерева Adjacency List
Вообще, чем мне не нравится Adjacency List, так это рекурсией, особенно, когда нужно выбрать дерево, без каких либо ограничений, например:
- Все дерево комментариев;
- Карта сайта;
- Навигационное меню;
- и т.д.;
Разработка → Иерархические структуры данных и производительность
Введение
В своей предыдущей статье я дал краткий обзор основных моделей хранения иерархических структур в реляционных БД. Как и положено тому быть, у многих читателей стал вопрос ребром о производительности представленных алгоритмов.
В данной статье я постараюсь приоткрыть завесу над этим животрепещущим вопросом, а в следующей обещаю коснуться вопросов оптимизации и поисков нестандартных решений.
Разработка → Иерархические структуры данных и Doctrine
Введение
Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.
В первую очередь, это связано с тем, что реляционные базы не приспособлены к хранению иерархических структур (как, например, XML-файлы), структура реляционных таблиц представляет из себя простые списки. Иерархические же данные имеют связь «родитель-наследники», которая не реализована в реляционной структуре.
Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.
Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.