Помощ от програмист (XML + БД). Мога да заплатя.

Fozzy

Well-Known Member
Здравейте,

трябва ми един скрипт, надявам се някой да помогне. Било то фор фрий или за пари.

Става дума за следното, имам база данни с много редове и един XML файл. В базата има две колони - номер и валидност.

Скрипта трябва да прави следното:

1. Взима номера.
2. Чеква дали същия номер го има в XML.
3. Ако го има, скрипта не прави нищо.
4. Ако го няма, променя валидността от true на false.

Ако пък продукт го е нямало, но се е появил отново в XML, трябва да промени от false на true.

Някакви идеи :(
 
От: Помощ от програмист (XML + БД). Мога да заплатя.

Мисля, че може да минеш и без скрипт. Ако базата ти е MySQL можеш да заредиш XML-а във временна таблица (виж тук https://dev.mysql.com/doc/refman/5.5/en/load-xml.html) след това с една проста заявка ще си ъпдейтнеш редовете които те интересуват.
 
От: Помощ от програмист (XML + БД). Мога да заплатя.

Здравей,

в коя посока ти е нужна синхронизация? xml->db или db->xml?
 
Re: От: Помощ от програмист (XML + БД). Мога да заплатя.

Мисля, че може да минеш и без скрипт. Ако базата ти е MySQL можеш да заредиш XML-а във временна таблица (виж тук https://dev.mysql.com/doc/refman/5.5/en/load-xml.html) след това с една проста заявка ще си ъпдейтнеш редовете които те интересуват.

Мерси за отговора. Не знам дали ще свърши работа. Забравих да спомена, че xml-a се обновява на няколко часа и на мен ми се иска поне веднъж дневно да се стартира автоматично (примерно през cron).

Здравей,

в коя посока ти е нужна синхронизация? xml->db или db->xml?

Скрипта сверява БД с XML и прави промените в БД. Ако това ме питаш, де :)
 
От: Помощ от програмист (XML + БД). Мога да заплатя.

Здравей, нека уточним:
1. Удряме db за всички данни (колко rows очакваш?).
2. Loop-ваме данните и мапваме с xml nodes (колко xml nodes очакваш?).
3. Ако db key exist in xml node - db update / else - continue;

Правилно ли съм те проследил?

За размера на очакваните данни питам, защото при дизайна на решението ще е добре да се вземе предвид количеството данни което ще трябва да се зареди в оперативната памет. Ако е повече от приемливото, удрянето на sql ще трябва да се направи на chunks и да се работи с тях. Ако xml е много голям, може xml да се load-не в sql чрез cron-a и да се работи на sql ниво.
 
Re: От: Помощ от програмист (XML + БД). Мога да заплатя.

Ако не се оправиш до понеделник, пиши ми.

Мерси, Тео :)

Здравей, нека уточним:
1. Удряме db за всички данни (колко rows очакваш?).
2. Loop-ваме данните и мапваме с xml nodes (колко xml nodes очакваш?).
3. Ако db key exist in xml node - db update / else - continue;

Правилно ли съм те проследил?

За размера на очакваните данни питам, защото при дизайна на решението ще е добре да се вземе предвид количеството данни което ще трябва да се зареди в оперативната памет. Ако е повече от приемливото, удрянето на sql ще трябва да се направи на chunks и да се работи с тях. Ако xml е много голям, може xml да се load-не в sql чрез cron-a и да се работи на sql ниво.

Ще пробвам да отговоря, въпреки че не съм много запознат.

Да кажем, че имаме база данни с коли. Вътре в нея има:

1. Номер;
2. Марка;
3. Модел;
4. Количество (примерно 5 / 10 / 50 броя).

И още 100 колони да има, все тая.

В XML имаме номер + още неща, които изобщо не ни трябват.

Скрипта трябва да проверява XML-a (около 500 реда, като ще нарастнат до 4-5000 максимум. 1 мб в момента като големина файла) за номер. Ако номера от БД го НЯМА в XML, тогава в БД променяме количество на 0.

Важи и обратното. Ако има номер в XML, чието количество в БД е 0, т.е. продукта е със сменено количество, но вече се е върнал в XML, то му променяме количеството, например на 999 или каквато и да е цифра.
 
Последно редактирано:
От: Помощ от програмист (XML + БД). Мога да заплатя.

Имаш лека грешка в логиката

Ако номера от БД го има в XML-a, то скрипта не прави нищо.
Прави проверка дали количеството е нула, и ако ДА - го променя.
 
Re: От: Помощ от програмист (XML + БД). Мога да заплатя.

Имаш лека грешка в логиката


Прави проверка дали количеството е нула, и ако ДА - го променя.

Да, прав си, ще го едитна.
 
От: Помощ от програмист (XML + БД). Мога да заплатя.

Нещата звучат като лош planning :).

До колкото разбирам факторът, който интензивно се променя/наразства е xml документа? Ако е така, по-скоро ще е добре да "обърнем" логиката.
Т.е. скрипта да парсва (sax) xml-а и да лупва резултата, като в крайна сметка ще се генерира един огромен sql update и всичко ще мине на една транзакция.
 
Re: От: Помощ от програмист (XML + БД). Мога да заплатя.

Нещата звучат като лош planning :).

До колкото разбирам факторът, който интензивно се променя/наразства е xml документа? Ако е така, по-скоро ще е добре да "обърнем" логиката.
Т.е. скрипта да парсва (sax) xml-а и да лупва резултата, като в крайна сметка ще се генерира един огромен sql update и всичко ще мине на една транзакция.

Аз нямам влияние върху xml-a. Просто използвам инфото, което ми подават.
 
От: Помощ от програмист (XML + БД). Мога да заплатя.

Разбирам, мога да ти помогна със скрипт (java/php/.net) който да invoke-неш с cron. Ако предпочиташ може да го направим да го invoke-ваш от мобилен дивайс и т.н.
Ако имаш интерес - пиши ЛС.
 

Горе