Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ SQL. Базы данных. _ Хранение дерева в таблице mySQL

Автор: NetWorm 21.9.2012, 20:50

Вобщем имеется древовидная структура. Пример зал театра.

Основной зал
|-Амфитеатр левая сторона
|-Ряд 01
|-Ряд 02
|-Ряд 03
|-Амфитеатр правая сторона
|-Ряд 01
|-Ряд 02
|-Ряд 03

Вот суть такая. Это можно представить в виде одной таблицы с полями..
id, name, parent

В данном случае она будет выглядеть вот так
id|Name |parent
1|Основной зал |NULL - т.е. самый верхний уровень
2|Амфитеатр левая сторона|1 - ссылка на верхний уровень
3|Ряд 01 |2 - ссылка на "Амфитеатр левая сторона"
4|Ряд 02 |2 - ссылка на "Амфитеатр левая сторона"

Вопрос. Как мне получить данные например Ряд 01 | Основной зал. т.е. получить через Ряд 01 мы можем получить строку Амфитеатр, а через амфитеатр можем получить Основной зал.

Сложность в том что уровней может быть разное количество.

Автор: Алексей1153 22.9.2012, 16:23

NetWorm, глянь вот тут http://club.shelek.ru/view.php?id=57 статьи
"MySQL. Иерархические запросы."
и
"MySQL. Деревья. Добавление материализованного пути к паре id—parent_id."
- вроде как раз об этом

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)