Прочитав кучу материалов: http://getinfo.ru/article610.html http://phpclub.ru/faq/Tree/DemoPrintDynamic?v=17kl http://sub.rambler.ru/read/rambler.comp ... time=13:05 http://phpclub.ru/detail/article/2002-06-03 http://habrahabr.ru/blogs/development/46659/ http://habrahabr.ru/blogs/development/47280/ хотелось бы внести ясность. К примеру имеется некая иерархическая структура разделов/страниц сайтов. Раздел и страница считать синонимами, просто всегда разное понятие более подходит. Каждая страница имеет свой URL, не числовой, а к примеру: Код (Text): /news/travel/hehe.php /news/auto/autozvuk.php /articles/mix.php /articles/auto/zxczxc.php Нужны следующие возможности: - добавление страницы в выбранный раздел - удаление разделов - изменение порядка сортировки в разделе - выборка всех разделов/подразделов/страниц из заданного раздела с учетом сортировки - построение пути (рездел 7 - подраздел 2 - подраздел 3 - страница 6) по выбранному разделу - поиск страницы по URL Страниц предполагается до 200. Хотелось бы узнать, какие методики хранения вы используете: - Список смежных вершин (Adjacency List) - Вложенное множество (Nested Set) - Материализованный путь (Materialized Path). И есть ли конкретный пример реализации (класс на PHP к примеру). Спасибо.
ну тут целая история, для начала советую начать обращаться к страницам через 1 файл, например index.php =) с помощью мод реврайта сможешь сделать перенаправление на него, потом разбить REQUEST_URI как надо по поводу хранения категорий, лично у меня есть 2 таблицы, категории и публикации, вложенность категорий сделана с помощью рекурсии(хз как это правельно называется) таблица категорий кешируется в файл массивом(чтоб запросов много не было), ну собственно дальше всё понятно
Mr.M.I.T. по поводу mod_rewrite - я так и делаю... а на счет варианта с доп. таблицей - вряд ли мне подойдет, но все же, покажи структуру таблицы Категории да понимаю, но если учитывать что в основном кол-во страниц будет 30-50, и это будет производиться очень редко - я думаю мне вполне сойдет... Если и так, то какой метод используешь ты?
если страниц до 1000 и больше не предвидится, то проще сделать матерьяльный путь и не париться. касательно урлов - у меня есть древняя статья на эту тему.
я использовал в одной таблице NS + pid родительской страницы. Выборка запрашиваемой страницы шла по pid (допустим вложенность 3 - максимум 3 запроса. Думаю делать вложенность больше не имет смысла. При том что данный путь можо закэшировать и ваще не делать запросов.). NS использовался для всяких разных сортировок и прочей байды.