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

Форум MySQL

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

 

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

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

тема: Структура сайта и структура БД
 
 автор: serjinio   (07.05.2008 в 00:51)   письмо автору
 
 

Допустим есть структуру сайта:
Главная (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


Или еще есть варианты???
помогите, кто сталкивался с деревьями БД

   
 
 автор: Axxil   (07.05.2008 в 09:54)   письмо автору
 
   для: serjinio   (07.05.2008 в 00:51)
 

Делаете простое дерево:

entity_id | parent_id | name

entity_id - id сущности (т.е. раздела или документа)
parent_id - id родителя данной сущности

вот в принципе и вся структура.

   
 
 автор: serjinio   (16.05.2008 в 01:05)   письмо автору
 
   для: 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 Материализованные пути....
и еще много разных вариантов...
начитался разных отзывов и совсем запутался...кто практически сталкивался с деревьями, подскажите какой из способов лучше использовать?

   
 
 автор: Trianon   (16.05.2008 в 01:22)   письмо автору
 
   для: serjinio   (16.05.2008 в 01:05)
 

1 - правильно называется "списки смежности" (adjacency lists)

Чем 2 и 3 отличается от 4?

Выбор между adjacency lists и nested sets осуществляется в зависимости от того, что важнее сделать быстрым - добавление/изъятие узлов или вывод дерева (обход всех узлов)

У matherialized paths имеются ограничения на число потомков предка и/или на глубину дерева.

   
 
 автор: serjinio   (16.05.2008 в 02:25)   письмо автору
 
   для: Trianon   (16.05.2008 в 01:22)
 

что хочу получить
1 возможность перемещения ветки те порядок следования(типо ,выводилось 12345 после перемещения 13245)
2 возможность части ветки назначить другого родителя
3 возможность реализации один ко многим (когда одна статья относится к разным категориям) я так понял требуется еще одна таблица
4 конечно, приоритетно скорость выборки
5 возможность вывода как всего дерева, так и отдельно веток

   
 
 автор: ronin80   (16.05.2008 в 08:07)   письмо автору
 
   для: serjinio   (16.05.2008 в 02:25)
 

тут вопрос о реализации на уровне сайта или на уровне бд?

   
 
 автор: serjinio   (16.05.2008 в 10:42)   письмо автору
 
   для: ronin80   (16.05.2008 в 08:07)
 

на уровне сайта

   
 
 автор: Axxil   (16.05.2008 в 11:01)   письмо автору
 
   для: serjinio   (16.05.2008 в 10:42)
 

http://www.getinfo.ru/article610.html

   
Rambler's Top100
вверх

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