Forum Webscript.Ru
Общие => Веб-технологии => Тема начата: Maniac от 01 Марта 2004, 15:17:47
-
Совсем меня замучал вопрос: как наиболее корректно и выгодно с точки зрения поиска хранить XML в реляционной БД? Все, что я находил в инете - как-то куцевато и некрасиво.
Может, кто знает?
-
приведи пример, как будет вестись поиск (а то все очень абстрактно описал)
Чем не устроили те решения, которые ты нашел ?
Почитай еще это (http://xpoint.ru/forums/internet/XML/thread/21078.xhtml)
-
Макс
Я это уже читал. Много флейма - мало толку. Собственно, конкретная задача примерно такая же, как на том форуме: необходим инструмент, который бы отображал XML на БД (MySQL) и мог возвращать данные по XPath запросу.
А не устраивают все найденные решения следующим: они подразумевают загрузку всего xml документа в память. Это нереально и не нужно.
-
как вариант:
http://detail.phpclub.net/article/myXTree
-
кстати, на каком языке тебе надо ?
А то я по привычке тебе на ПХП предложил
-
Макс Ну, в т.ч. и на PHP
А вообще, после долгих поисков я сделал вывод: нечего изгаляться и писать XPath2SQL интерфейсы. Реляционная БД один черт не очень подходит для хранения XML данных.
Тот же самый MyXTree - классный зверь, но при выборке очень любит делать join\'ы сам на себя. Конечно, в случае небольших xml-файлов это еще куда ни шло. Но в случае небольших файлов их можно обрабатывать и на клиентской стороне.
Наиболее удобоваримым по скорости/сложности мне кажется такой вариант: хранить данные в таблице по-элементно, при запросе производить базовый парсинг XPath-выражения, выделять все NodeName в нем, потом из таблицы их вытаскивать, собирать в файл, а уж затем на клиентской стороне натравливать через тот же самый XSLT-парсер на этот файл XPath.
-
Maniac:
Тот же самый MyXTree - классный зверь, но при выборке очень любит делать join\'ы сам на себя
я очень бегло его просматривал. Там автор объяснял, почему такой путь избрал.
А есть ли смысл вообще использовать в данном случае XML ?
-
Макс:
А есть ли смысл вообще использовать в данном случае XML ?
Смысл есть. Я сейчас пишу веб-сервис для хранения данных. И хотелось бы, чтобы данные могли храниться разными способами. При этом данные могут быть не жестко сткруктурированы (т.е. просто таблица не подходит). Естественно, я использую XML для хранения. И в качестве универсального способа доступа к информации логично использовать XPath/XQuery.