Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как и где лучше хранить структуру сайта? XML, B+ деревья в БД, файлы... 
:(
    Опции темы
AntiLL
Дата 9.3.2006, 00:06 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 4.2.2006

Репутация: нет
Всего: нет



Доброго время суток!
В настоящее время поставлена задача создать универсальную CMS. Встал вопрос как лучше организовывать структуру для сайта, а самое главное где лучше ее хранить.
Была идея хранить струтуры сайтов в виде XML, но вроде бы как стало известно, что PHP очень медленно работает с оным. Поэтому не стоит.
Кто нибудь знает эта верная инфа?
Вроде бы структуру сайта можно хранить в виде Б+ дерьев в БД. Якобы все это дело будет быстрее и оптимальнее.
Кто что может посоветовать по этому поводу?
PM MAIL   Вверх
Serkys
Дата 9.3.2006, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Я продумал структуру с помощью id в БД. Конечно, отследить вручную бывает сложно, но движок всё прекрасно отслеживает. Если надо, распишу подробнее.
PM MAIL   Вверх
AntiLL
Дата 9.3.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 4.2.2006

Репутация: нет
Всего: нет



Ну если не сложно, то распиши пожалуйста, буду очень признателен.
Ну а в XML то никто не пробовал хранить структуру?
PM MAIL   Вверх
IZ@TOP
Дата 9.3.2006, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



AntiLL, если у тебя небольшой проект, то можно и в XML. Когда речь заходит о больших объемах данных, естественно лучше использовать базы данных.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Serkys
Дата 9.3.2006, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



AntiLL, в принципе ничего заумно сложного. Структура такая:
В БД выделена таблица, содержащая названия всех разделов, их id и rod_id. При обращении к какому-либо разделу через GET передаётся id этого раздела. По этому id ищутся разделы, у которых этот id записан в поле rod_id. Поле rod_id содержит id раздела, в котором расположен этот раздел. Немного муторно, т.к. напрямую через БД сложно отследить структуру, но толковой инфы на эту тему в нете не нашёл и пришлось самому сочинять.
PM MAIL   Вверх
AntiLL
Дата 9.3.2006, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 4.2.2006

Репутация: нет
Всего: нет



Нет, планируется запустить большой проект, поэтому значит XML отпадает.
Поэтому буду реализовывать в таблице БД, по совету Serkys'а. Спасибо! =)

Ну тогда еще вопрос напоследок - как получить в пхп полный урл со всеми параметрами открываемой страницы? Помню как получить откуда пришел, а вот текущую чтото не припомню. Подскажите плз..
PM MAIL   Вверх
Ciber SLasH
Дата 10.3.2006, 05:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(AntiLL @ 9.3.2006, 22:37 Найти цитируемый пост)
как получить в пхп полный урл со всеми параметрами открываемой страницы?

Код

echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

PM   Вверх
AntiLL
Дата 10.3.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 4.2.2006

Репутация: нет
Всего: нет



Все спасибо всем за помощь! Респект сайту и форумчанам! =)
PM MAIL   Вверх
CyClon
Дата 11.3.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Хм, а чем передача с помощью GET имен модулей не устраивает? К примеру /?go=download - список файлов.


--------------------
user posted image
PM   Вверх
Serkys
Дата 11.3.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(CyClon @ 11.3.2006, 20:54 Найти цитируемый пост)
а чем передача с помощью GET имен модулей не устраивает? К примеру /?go=download - список файлов.

Смысл?
PM MAIL   Вверх
CyClon
Дата 12.3.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 3.12.2005

Репутация: нет
Всего: 4



Смысл - не нужно замарачиваться со всякими id и БД, XML. А теперь вопрос: Смысл заморачиватсья? Чтобы был id в адресной строке, для красоты? Тогда MOD_REWRITE? Или я чего-то не понял?


--------------------
user posted image
PM   Вверх
Grasshopper
Дата 23.3.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 23.3.2006

Репутация: нет
Всего: 1



Цитата(Serkys @ 10.3.2006, 01:09)
По этому id ищутся разделы, у которых этот id записан в поле rod_id.

Проблема в том что если вложение больше одного уровня, то придется делать много запросов к бд, чтобы найти родителя родителя, родителя родителя родителя и т.д.
PM MAIL   Вверх
IvanB
Дата 23.3.2006, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: нет
Всего: 5



А одним запросом не получится?
--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
Serkys
Дата 26.3.2006, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: нет
Всего: 22



Цитата(Grasshopper @ 23.3.2006, 17:52 Найти цитируемый пост)
Проблема в том что если вложение больше одного уровня, то придется делать много запросов к бд, чтобы найти родителя родителя, родителя родителя родителя и т.д.

ИМХО много запросов придётся делать при попытке отследить наследование. Но часто это можно и не делать... smile . Также можно писать в сессии разделы, посещённые до этого (большинство посетителей ведь будут проходить весь путь наследования, а не сразу по ссылке, а при недостаче - уже черпать из БД. Думать всё это надо, как-нибудь придумаю потом (самому эту проблему решать надо будет в ближайшее время). Заморочек конечно на первый взгляд много, но, как мне говорит опыт, почти все исчезнут в процессе обдумывания/написания, а остальные можно малыми потерями обойти.

Цитата(IvanB @ 23.3.2006, 18:43 Найти цитируемый пост)
А одним запросом не получится?

Что-то из околостульной части тела мне подсказывает, что нет smile
PM MAIL   Вверх
youri
Дата 31.3.2006, 03:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



Цитата(CyClon @ 11.3.2006, 20:54 Найти цитируемый пост)
Хм, а чем передача с помощью GET имен модулей не устраивает? К примеру /?go=download - список файлов.

а можно поподробнее: как связать вместе структуру сайта, которая храниться в БД, и передачу имени модуля через GET? где храняться имена модулей? имеется в виду, что есть index.php, который по имени модуля узнает, какому скрипту передать запрос? можно отказаться от хранения структуры сайта в базе?
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1143 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.