Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Иерархия каталогов сложные запросы к БД


Автор: supercelt 29.11.2010, 16:12
Иерархия каталогов сложные запросы к БД

Помогите пожалуйста составить иерархию. Постараюсь подробно всё описать что нужно. 

2 случая.

Первый:

Есть таблица sections 

id   title
---+-------
1    one
2    two
3    three

Есть таблица categories

id   title   section
---+-------+---------
1    one_c        1
2    two_c        1
3    three_c      2
4    four_c       1
5    five_c       2

И есть таблица content

id   title   text   sectionid   catid
---+-------+------+-----------+-------
1     t1     tttt      1         1
2     t2     tttt      1         2
4     t4     tttt      2         5
5     t5     tttt      1         1

1. Нужно построить иерархию секций. В этом случае надо сделать вот так:

one              #(это секция)
--one_c          #(это категория)
--two_c          #(это категория)
--four_c         #(это категория)
two              #(это секция)
--three_c        #(это категория)
--five_c         #(это категория)
three            #(это секция)

А вот случай 2:

one (3)              #(это секция) (в скобочках подсчитать сколько категорий в данной секции)
--one_c (2)         #(это категория) (в скобочках подсчитать сколько контента в данной категории)
--two_c (1)         #(это категория)
--four_c (0)        #(это категория)
two (2)             #(это секция)
--three_c (0)        #(это категория)
--five_c (1)        #(это категория)
three (0)           #(это секция)

Автор: fridkaratel 12.12.2010, 09:36
Варианты:
- Использовать nested sets, если дерево меняется не часто
- Использовать деревья с указанием родителей по типу каталога, т.е. Parents = "0.1.3.5.8.9"
- Количество детей у родителя обновлять автоматически при добавлении/удалении/перемещении ребёнка...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)