Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Построить дерево, как правильно реализовать (выборка из бд)
 
 автор: dima_s_d_s   (05.04.2009 в 03:54)   письмо автору
988 байт
 
 

Доброго времени суток ГУРУ PHP/MySQL

Сразу к делу...

Допусти нужно в результате получить такое меню
http://px6.ru/fulls-c97f81ed728f4d3717db46547189bac2.png

Само меню можно сделать, но постал вопрос перед выборкой из БД.

Вот схематическая структура БД

http://px6.ru/fulls-90aa4fd5c6a1339f6af8fd9f101a339c.gif

Как видно из картинки, есть три таблицы.

http://px6.ru/fulls-0017ca7ba93da5a69f88070fa0d9bc44.png
- секции - назову её основной таблицей, содержит название и позицию.
На картинке это Секция 1 и секция 4

http://px6.ru/fulls-84d524652fc20f5c7780ac8f63a77cf4.png
- контент - тут хранится основной контент, контент может быть вложенным в произвольном порядке
На картинке это Контент 12, Категория 2, Категория 4, Контент 8, Контент 6, Контент 7 и тд.

http://px6.ru/fulls-50e6f78e59551b37271f187453108739.png
- категории - я думаю тут понятно, принцип папки, тоже может быть вложенным в произвольном порядке

Честно, я начал писать код запроса для БД, чтоб выбрать данные
а потом из этих данных собрать данное дерево. Но на каком-то этапе понял,
что не смогу составить данный запрос как можно оптимальней. Начинаю метаться,
от выбора реализации, реализовать с помощью JOIN и при этом посылать многочисленное количество запросов,
или использовать UNION для создания одной таблицы, а потом работать с массивом.

Так вот, кто может подсказать, сказать где почитать, показать или даже продемонстрировать пример,
как это всё возможно воплотить в реальность. Возможно, будут предложения по самой структуре БД.

Заранее благодарен.

К теме прикрепил дамп БД.

  Ответить  
 
 автор: Trianon   (05.04.2009 в 09:16)   письмо автору
 
   для: dima_s_d_s   (05.04.2009 в 03:54)
 

>Честно, я начал писать код запроса для БД, чтоб выбрать данные
>а потом из этих данных собрать данное дерево. Но на каком-то этапе понял,
>что не смогу составить данный запрос как можно оптимальней. Начинаю метаться,
>от выбора реализации, реализовать с помощью JOIN и при этом посылать многочисленное количество запросов,
>или использовать UNION для создания одной таблицы, а потом работать с массивом.

Зачем три таблицы? Почему не обойтись одной?

  Ответить  
 
 автор: dima_s_d_s   (05.04.2009 в 18:14)   письмо автору
 
   для: Trianon   (05.04.2009 в 09:16)
 

Вопрос снят, решение NESTED SETS.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования