|
|
|
| Допустим есть структуру сайта:
Главная (index.php)
---раздел_1
| ---подраздел_1_1
| ---подраздел_1_2
---раздел_2
| ---подраздел_2_1
| ---подраздел_2_2
| |---под_под_раздел_2_2_1
---раздел_3
| ---подраздел_3_1
| ---подраздел_3_2
|
---раздел_N
ПРИМЕР :путь до ...под_под_раздел_2_2_1
Главная (index.php)>>>раздел_1>>>раздел_2>>>подраздел_2_2>>>под_под_раздел_2_2_1
Как правильно организовать структуру в БД?
1____Чтобы совпадала со структурой сайта
2________Состояла из нескольких таблиц:
|.) таблица 1 ---раздел_1
| ---подраздел_1_1
| ---подраздел_1_2
||.) таблица 2 ---раздел_1
| ---подраздел_1_1
| ---подраздел_1_2
| |---под_под_раздел_1_2_1
|||.) таблица 3 ---раздел_1
| ---подраздел_1_1
| ---подраздел_1_2
ПРИМЕР :путь до ..таблица 2 под_под_раздел_1_2_1
Главная (index.php)>>>таблица 2>>>раздел_1>>>подраздел_1_1>>>под_под_раздел_1_2_1
Или еще есть варианты???
помогите, кто сталкивался с деревьями БД | |
|
|
|
|
|
|
|
для: serjinio
(07.05.2008 в 00:51)
| | Делаете простое дерево:
entity_id | parent_id | name
entity_id - id сущности (т.е. раздела или документа)
parent_id - id родителя данной сущности
вот в принципе и вся структура. | |
|
|
|
|
|
|
|
для: Axxil
(07.05.2008 в 09:54)
| | Начал разбираться со способами хранения и выборки деревьев из БД,получается очень много способов :
1 id и parent_id
2 DBtree http://dev.e-taller.net/dbtree/
3 измененный класс DBtree http://php.russofile.ru/ru/authors/sql/nestedsets01/
4 NESTED SETS (вложенные множества),
5 Материализованные пути....
и еще много разных вариантов...
начитался разных отзывов и совсем запутался...кто практически сталкивался с деревьями, подскажите какой из способов лучше использовать? | |
|
|
|
|
|
|
|
для: serjinio
(16.05.2008 в 01:05)
| | 1 - правильно называется "списки смежности" (adjacency lists)
Чем 2 и 3 отличается от 4?
Выбор между adjacency lists и nested sets осуществляется в зависимости от того, что важнее сделать быстрым - добавление/изъятие узлов или вывод дерева (обход всех узлов)
У matherialized paths имеются ограничения на число потомков предка и/или на глубину дерева. | |
|
|
|
|
|
|
|
для: Trianon
(16.05.2008 в 01:22)
| | что хочу получить
1 возможность перемещения ветки те порядок следования(типо ,выводилось 12345 после перемещения 13245)
2 возможность части ветки назначить другого родителя
3 возможность реализации один ко многим (когда одна статья относится к разным категориям) я так понял требуется еще одна таблица
4 конечно, приоритетно скорость выборки
5 возможность вывода как всего дерева, так и отдельно веток | |
|
|
|
|
|
|
|
для: serjinio
(16.05.2008 в 02:25)
| | тут вопрос о реализации на уровне сайта или на уровне бд? | |
|
|
|
|
|
|
|
для: ronin80
(16.05.2008 в 08:07)
| | на уровне сайта | |
|
|
|
|