Rudolf
Новичок
Как автоматизировать поиск по четырем и более разнородным xml базам.
Уважаемое сообщество.
Пожалуйста, подскажите как эффективнее решить мою задачу.
Дано: три туроператора, которые позволяют через XML шлюз получить информацию о горячих предложениях.
Требуется: автоматизировать процесс поиска нужного тура. Сделать так чтобы поиск по базам всех трех( а в будущем 4 и более) производился из одной формы. Пользователь заполняет один раз - система ищет по всем и выдает результат.
Платформа: PHP5, MySql4, Apache, Linux
Структура xml файлов в общем похожа, но у каждого есть свои особенности, поэтому нужно писать к каждому туроператору свой "адаптер".
В общем виде структура выглядит так:
<spo>
<country_id>12345</country_id>
<city_id>123</city_id>
<region_id>123</region_id>
<hotel_id>12345</hotel_id>
<price>559</price>
....
...
...
</spo>
Т.е. блок спецпредложений есть сложным типом данных, который хранит в основном идентификаторы данных, которые в свою очередь хранятся в справочниках готелей, городов, курортов, и т.д. Одна запись о горячем предложении ссылается в среднем на 22 справочника. Самих записей о предложениях может быть от 200 до 1500.
У разных туроператоров отличаются как структуры предложения, так и идентификаторы и справочники.
Кроме того, данные из справочников постоянно меняются, поэтому их нельзя один раз импортировать, это нужно делать каждый раз при импорте горячих предложений.
Кажется основные моменты изложил.
Из-за того, что у меня мало опыта в работе с такими задачами, я не очень представляю как ее решать.
Опишу лишь общие соображения.
1. Поскольку данные меняются с один раз в час, то один раз в час нужно проделать такие операции:
а). Унифицировать входные даннные.
Для этого получить и парсить все xml файлы предложений вместе со справочниками и записывать их в свою sql-базу с унифицированными значениям ключей, запысывая идентификатор туроператора.
Тут уже возникает куча запросов: к каждому справочнику, каждого оператора - 22x4 = 88 запросов на выдачу xml которые пожрут кучу памяти для парсинга...
б). Из своей формы поиска обращаться к унифицированной базе, искать, выводить результаты.
Мне кажется, все это очень ресурсоемко, но может быть, я ошибаюсь.
Как оптимизировать этот процесс?
Спасибо заранее. Надеюсь на вашу помошь.
Уважаемое сообщество.
Пожалуйста, подскажите как эффективнее решить мою задачу.
Дано: три туроператора, которые позволяют через XML шлюз получить информацию о горячих предложениях.
Требуется: автоматизировать процесс поиска нужного тура. Сделать так чтобы поиск по базам всех трех( а в будущем 4 и более) производился из одной формы. Пользователь заполняет один раз - система ищет по всем и выдает результат.
Платформа: PHP5, MySql4, Apache, Linux
Структура xml файлов в общем похожа, но у каждого есть свои особенности, поэтому нужно писать к каждому туроператору свой "адаптер".
В общем виде структура выглядит так:
<spo>
<country_id>12345</country_id>
<city_id>123</city_id>
<region_id>123</region_id>
<hotel_id>12345</hotel_id>
<price>559</price>
....
...
...
</spo>
Т.е. блок спецпредложений есть сложным типом данных, который хранит в основном идентификаторы данных, которые в свою очередь хранятся в справочниках готелей, городов, курортов, и т.д. Одна запись о горячем предложении ссылается в среднем на 22 справочника. Самих записей о предложениях может быть от 200 до 1500.
У разных туроператоров отличаются как структуры предложения, так и идентификаторы и справочники.
Кроме того, данные из справочников постоянно меняются, поэтому их нельзя один раз импортировать, это нужно делать каждый раз при импорте горячих предложений.
Кажется основные моменты изложил.
Из-за того, что у меня мало опыта в работе с такими задачами, я не очень представляю как ее решать.
Опишу лишь общие соображения.
1. Поскольку данные меняются с один раз в час, то один раз в час нужно проделать такие операции:
а). Унифицировать входные даннные.
Для этого получить и парсить все xml файлы предложений вместе со справочниками и записывать их в свою sql-базу с унифицированными значениям ключей, запысывая идентификатор туроператора.
Тут уже возникает куча запросов: к каждому справочнику, каждого оператора - 22x4 = 88 запросов на выдачу xml которые пожрут кучу памяти для парсинга...

б). Из своей формы поиска обращаться к унифицированной базе, искать, выводить результаты.
Мне кажется, все это очень ресурсоемко, но может быть, я ошибаюсь.
Как оптимизировать этот процесс?
Спасибо заранее. Надеюсь на вашу помошь.