E-commerce Specialist - rozvoj eshopů v zemích CZ, SK, HU a PL
Zobrazují se odpovědi 1 až 5 z 5

Aktualizacia jedalneho menu pri parsovani z webu - problem

  1. Ahojte,


    potreboval by som seriozne poradit ohladne parsovanie jedalneho menu pre cely tyzden.

    1. Prvy krat ked to parsujem, tak je vsetko jasne, kazde jedlo zapisem do DB na samostatny riadok
    Kód:
    (id, jedlo, cena, datum, id_jedalne, ...)
    2. Avsak kazdy den v tyzdni chcem skontrolovat cely tyzden, ci sa nahodou jedalnicek nezmenil.
    3. Nechcem to kontrolovat riadok po riadku, ale moja idea je, ze vyparsujem jeden cely den, ulozim do jednej premennej (pripadne pole), potom si vySELECTujem ten isty den v DB a ulozim do premennej (pripadne pole). Porovnam tieto dve premenne, pokial su rovnake, nic neriesim. Pokial nie su rovnake, vymazem VSETKY riadky jedal daneho dna, a INSERTnem vsetky nove jedla daneho dna. T.j. nebudem zbytocne riesit riadok po riadku, v ktorom jedle nastala zmena.
    4. Vzhladom k tomu, ze je mala pravdepodobnost, ze sa budu jedla menit pocas tyzdna, pride mi to ako najlepsie riesenie.

    Co si o tom myslite? Existuje aj nejake krajsie riesenie? Pripadne efektivnejsie riesenie?

    Vopred dakujem velmi pekne za vase cenne rady.

    it47

  2. Co se právě děje na Webtrhu?
    AKIKO magazín poptává: Základní nastavení MediaWiki
    Iko12 poptává: HTML kodér - emailové šablóny
    Moviefan.cz poptává: Vytvořil šablonu designu na Wordpress
  3. Ahoj,

    sloupec ID = auto_increment nebo unikátní pro to jídlo, co dostaneš z parseru? A o kolika řádcích se bavíme? Pokud to není extrémní číslo, tak bych to řešil řádek po řádku... pokud najdeš nesrovnalost, tak hned ten řádek upravíš a nemusíš mazat celý den...

  4. Citace Původně odeslal Micruss Zobrazit příspěvek
    Ahoj,

    sloupec ID = auto_increment nebo unikátní pro to jídlo, co dostaneš z parseru? A o kolika řádcích se bavíme? Pokud to není extrémní číslo, tak bych to řešil řádek po řádku... pokud najdeš nesrovnalost, tak hned ten řádek upravíš a nemusíš mazat celý den...
    ID je samozrejme auto_increment; samotne jedla nemaju ziadne ID-cka (bohuzial)

    Jedna sa asi o 1500 riakov pri kazdom parsovani, co je podla mna dost vela.

    Takze co si myslite o mojom rieseni?

    Vopred dakujem velmi pekne.

    it47

  5. Já osobně bych to udělal takhle:

    1) vybral bych sloupec, který budu hledat v databázi (např. názvy jídel)
    udělal select:
    Kód:
    SELECT COUNT(*) FROM tab1 WHERE id_jedalne = id_z_parseru AND datum = datum_z_parseru AND jedlo NOT IN (jidlo1,jidlo2,jidlo3)
    // z parseru... pokud máš lepší sloupec tak jiný...

    Pokud tam to jídlo nebude došlo ke změně a je potřeba udělat úpravu, možná bych si vytvořil i pomocnou tabulku na logování v případě změny, abych viděl, co se dělo...

    2) v aplikaci udělal podmínku pokud != 0 smazat den a vložit všechny záznamy z parseru do db
    Kód:
    if(vysledek_sql != 0) {
    smazatDenzDB(...)
    vlozitDendoDB(...)
    }

  6. Citace Původně odeslal Micruss Zobrazit příspěvek
    Já osobně bych to udělal takhle:

    1) vybral bych sloupec, který budu hledat v databázi (např. názvy jídel)
    udělal select:
    Kód:
    SELECT COUNT(*) FROM tab1 WHERE id_jedalne = id_z_parseru AND datum = datum_z_parseru AND jedlo NOT IN (jidlo1,jidlo2,jidlo3)
    // z parseru... pokud máš lepší sloupec tak jiný...

    Pokud tam to jídlo nebude došlo ke změně a je potřeba udělat úpravu, možná bych si vytvořil i pomocnou tabulku na logování v případě změny, abych viděl, co se dělo...

    2) v aplikaci udělal podmínku pokud != 0 smazat den a vložit všechny záznamy z parseru do db
    Kód:
    if(vysledek_sql != 0) {
    smazatDenzDB(...)
    vlozitDendoDB(...)
    }
    dakujem, takisto zaujimave riesenie :)

Hostujeme u Server powered by TELE3