Autor Zpráva
WMPopi
Profil
Ahoj,
řeším takovouto věc - eshop si zpracovává cizí xml: každý den v noci smaže všechny produkty a kategorie z databáze a opět naimportuje z aktuálního xml souboru. Při malém množství produktů je to ok (ač mi to nepřidá zrovna elegantní), pomalu se ale xml rozrůstá a chtěl bych databázi ulehčit.

Zatím mě napadlo uložit si md5 posledního souboru a další den s ním porovnat, pokud by byl stejný - nic se nezměnilo, nemusím zpracování provádět. Toto ale neprojde, pokud se změní i jediná položka, jak to řešíte vy?

Děkuju za tip, hezký den
Kajman
Profil
Můžete si spočítat md5 hash i nad jednou položkou.

Má každá ta položka jedinečný identifikátor v rámci xml, který je zachován v čase?
WMPopi
Profil
Perfektní nápad!

Takže postup bych měl asi takovýhle:
1/ spočítám hash celého xml, pokud se liší od předchozího pokračuju dalšími kroky
2/ z databáze vyberu všechny hashe produktů, které mám uložené z předchozího zpracování ve sloupci, načtu je do pole s indexy jejich id od dodavatele xml
3/ procházím položku po položce v xml, spočítám její hash a porovnám s hashem načteným v poli z databáze
4/ pokud se liší, aktualizuju celý produkt; spočítám hash produktu, uložím se záznamem
5/ spočítám hash celého xml, uložím

Díky
WMPopi
Profil
Kajman:
Ještě jsem zapomněl na kontrolu obrázků - myslíte že stačí porovnávat velikost mého a vzdáleného? Je malá náhoda, že by se velikost po aktualizace přesně shodovala.. Rád bych zjišťoval datum změny vzdáleného souboru, ale nikde mi nefunguje v curl filetime.
WMPopi
Profil
Přes curl jsem v hlavičkách nakonec našel Last-Modified a souhlasí, tedy vyřešeno.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: