Не могу выбрать XML (с xPath) или MySQL

CS
На сайте с 05.09.2012
Offline
13
413
Здравствуйте форумчане!!!

Обычно в своих работах использую связку Apache + PHP + MySQL. Все время работал на CMF Kohana и его функционала вполне хватало для решения моих несложных задач. Но время идет и появляются новые задачи. И сейчас встал очень остро вопрос над создании сайта с древовидным каталогом.

Ссылки должны выглядеть следующим образом:

/catalog

вывод ссылок на все категории

/catalog/category

вывод ссылок на все под категории для определенной категории

/catalog/category/subcategory

вывод ссылок на все товары этой под категории

/catalog/category/subcategory/product

просмотр конкретного товара

В реляционных базах данных хранение древовидных структур больная тема. И я очень хорошо понял почему, когда начал задействовать модуль orm-mptt (для работы с MySQL). Не смотря на то, что он представляет очень удобный набор методов работы с такими структурами данных, написать надежный и эффективный код не получается. Постоянно выходит жуткое нагромождение запросов к базе данных, что меня сильно напрягает.

Другое дело XML. Сам вид ссылок буквально подталкивает хранить весь каталог в файле XML и оперировать его данными с помощью xPath. Но я никогда не работал с подобными технологиями и появляются вполне естественные вопросы:

Если данных будет очень много, сильно ли будет страдать вставка и модификация данных?

На какой количество данных рассчитана эта технология? С какими трудностями придется столкнуться и к чему следует готовиться? А может быть у Вас есть пару хороших советов для решения подобной задачи в MySQL?

Заранее спасибо за ответы!

Ayavryk
На сайте с 11.10.2003
Offline
209
#1

-Ребе, а зачем нужно делать обрезание?
-Ну, во первых, это красиво... (с)

В отличие от обрезания Любая XML-ориентированная БД будет по производительности намного хуже любой обычной реляционной.

Работа с деревьями тема очень хорошо изученная. Куча методов. Что-то новое изобретать имхо смысла большого нет. Просто изучите как можно все организовать более эффективно.

В своей коханой Kohana вы можете свободно юзать XML/XSLT в слое VIEW. Имхо перенос части операций по сборке данных на XSLT действительно позволяет делать запросы более простыми.

НО еще лучше, если у вас есть возможность посмотреть в сторону MS или Oracle там работа с XML хз сколько лет исключает всякие прокладки которые необходимы для MySQL+PHP

Тынгыр, мынгыр, комсомол (http://erum.ru). Ехари, ехари, (жалобно) аяврик. /народная тунгусская песня/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий