SW si vypýta MySQL host address, username, password a nazov databazy SW sa pokusi pripojit a oznami vysledok. SW si vypyta meno tabulky, v ktorej bude pracovat. Ak taku nenajde, da na vyber zadat meno tabulky znova alebo skoncit. SW si vypyta meno stlpca (master), ktoreho obsah chce preniest. Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci). SW si vypyta meno stlpca (target), do ktoreho chce prenasany obsah zapisat. Ak neexistuje, oznami to (a program skonci). SW hodnotu poctu spracovanych riadkov nastavi na 0. SW zacne spracovavat prvy riadok.
SW v riadku zisti hodnotu stlpca target – ak je nenulová, oznámi to a spyta sa, ci hodnotu má prepísať, riadok preskocit alebo program ukoncit. Podla toho program ukonci, prejde na dalsi riadok. Ak ma prepisat hodnotu, pokracuje. SW nacita hodnotu master a zapise ju do target. K hodnote urcujucej pocet spracovanych riadkov pripocita 1. SW zmaze hodnotu v stlpci master. SW zisti, ci je na poslednom riadku v tabulke, ak ano, program sa ukonci – vypise o tom oznam, kde uvedie, kolko riadkov spracoval. SW zisti, ci pocet riadkov je delitelny 20, ak ano, vypise pocet uz spracovanych riadkov. SW prejde na dalsi riadok.
SW si vypýta MySQL host address, username, password a nazov databazy SW sa pokusi pripojit a oznami vysledok. SW si vypyta meno tabulky (master), v ktorej bude pracovat. Ak taku nenajde, da na vyber zadat meno tabulky znova alebo skoncit. SW si vypyta meno tabulky (target), v ktorej bude pracovat. Ak taku nenajde, da na vyber zadat meno tabulky znova alebo skoncit. SW porovna pocet riadkov v tabulke master a v tabulke target – ak sa nezhoduju oznami to (program skonci)
SW si vypyta meno stlpca (master-master) v tabulke master, ktoreho obsah chce preniest. Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci). SW si vypyta meno stlpca s kontrolnym ID v tabulke master, ktoreho obsah chce preniest. Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci). SW si vypyta meno stlpca (target-target) v tabulke target, do ktoreho chce prenasany obsah zapisat. Ak neexistuje, oznami to (a program skonci).
SW hodnotu poctu spracovanych riadkov nastavi na 0. SW sa presunie na prvy riadok v tabulke master
SW zisti hodnotu kontrolneho ID v tabulke master SW vyhlada v tabulke target riadok s rovnakym ID ako je hodnota „kontrolneho ID“ v tabulke master. SW zisti hodnotu stlpca target-target v tabulke target (v riadku, ktoreho ID=hodnota kontrolneho ID) – ak je nenulová, oznámi to a spyta sa, ci hodnotu má prepísať, riadok preskocit alebo program ukoncit. Podla toho program ukonci alebo prejde na dalsi riadok (otestuje, ci uz nepresiel vsetky) v tabulke master. Ak ma prepisat hodnotu, pokracuje. SW nacita hodnotu master-master v tabulke master a zapise ju do target-target v tabulke target (v riadku, ktoreho ID=hodnota kontrolneho ID). K hodnote urcujucej pocet spracovanych riadkov pripocita 1. SW zisti, ci je na poslednom riadku v tabulke master, ak ano, program sa ukonci – vypise o tom oznam, kde uvedie, kolko riadkov spracoval. SW zisti, ci pocet riadkov je delitelny 20, ak ano, vypise pocet uz spracovanych riadkov. SW prejde na spracovanie dalsieho riadku v tabulke master. treba ratat aj s prazdnym obsahom – ten tiez treba „kopirovat/preniest“…
SW si vypýta MySQL host address, username, password a nazov databazy SW sa pokusi pripojit a oznami vysledok. SW si vypyta meno tabulky, ktorej obsah chce zmazat. Ak taku nenajde, da na vyber zadat meno tabulky znova alebo skoncit. SW zisti pocet riadkov v tabulke a zapamata si ho. Vypise ho a opyta sa, ci uzivatel chce obsah tabulky zmazat. Ak nie, program sa ukonci. SW upozorni, ze zmazanim obsahu tabulky dojde aj k strate priradenych komentárov a inych udajov, ktore sa viazu na zaznamy v tabulke a opyta sa, ci uzivatel chce pokracovat. Ak nie, program sa ukonci. SW polozi otazku „Peter o tom vie?“ Ak je odpoved nie, program sa ukonci. SW hodnotu poctu zmazanych riadkov nastavi na 0. SW zacne spracovavat prvy riadok.
SW zmaze riadok. K hodnote poctu zmazanych riadkov pricita 1. SW zisti, ci je na poslednom riadku v tabulke, ak ano, – vypise oznam, ze ukoncil program, uvedie, kolko riadkov zmazal a program ukonci. SW zisti, ci pocet riadkov je delitelny 20, ak ano, vypise pocet uz zmazanych riadkov. SW prejde na dalsi riadok.
SW si vypýta MySQL host address, username, password a nazov databazy SW sa pokusi pripojit a oznami vysledok. SW si vypyta meno tabulky, v ktorej bude pracovat. Ak taku nenajde, da na vyber zadat meno tabulky znova alebo skoncit. SW si vypyta meno stlpca (target_ICO), kam ma zapisat ICO. Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci). SW si vypyta meno stlpca (target_orig), kam ma zapisat informaciu o tom, ci ICO je povodne, alebo nie (doplnene). Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci). SW si vypyta meno stlpca (firma), kde je hodnota popisujuca nazov firmy. Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci).
SW zacne spracovavat prvy riadok.
SW overi, ci uz nepresiel cez vsetky riadky – ak ano, vypise, ze spracoval celu tabulku a skonci. SW skontroluje, obsah stlpca target_ICO – ak je nenulovy, zapise hodnotu „orig“ do stlpca target_orig a prejde na dalsi riadok. SW nacita obsah stlpca firma, ak ne nulovy, preskoci na spracovanie dalsieho riadku, ak je nenulovy, zobrazi ho. SW porovna ho (vymyslite ako) s nazvami firiem v regise. *** Ak nenajde zhodny nazov, ponukne nazvy, ktore sa mu zdaju podobne (navrhnite ako), moznost preskocit riadok alebo zadat ICO individualne ***** Ak uzivatel zada ICO individualne, hodnota sa zapise do target_ICO, zapise hodnotu „manual“ do stlpca target_orig a prejde na dalsi riadok a program prejde na spracovanie dalsieho riadku. ***** Ak uzivatel zada preskocit riadok, program prejde na spracovanie dalsieho riadku. ***** Ak uzivatel vyberie niektory z „podobnych“ nazvov, ktore program ponukol, zapise do stlpca target_ICO hodnotu ICO pre vybranu firmu, ktorú uvadza regis. Zapise hodnotu „manual“ do stlpca target_orig. Program prejde na spracovanie dalsieho riadku. *** Ak najde zhodny nazov, zapise do stlpca target_ICO hodnotu zistenu v regise. Zapise hodnotu „auto“ do stlpca target_orig
Program by mal vyhodnotit ako totozne firmy aj tie, ktorú maju pravnu formu zapisanu roznym sposobom napr. spoločnosť ručením obmedzenym=s .r. o.=sro=spol. s r. o. a pod. Idealne by bolo, keby vyuzival nejaku tobulku (csv?), ktoru by uzivatel mohol doplnovat.
SW si vypýta MySQL host address, username, password a nazov databazy SW sa pokusi pripojit a oznami vysledok. SW si vypyta meno tabulky (master), v ktorej je zadane geograficke clenenie. Ak taku nenajde, da na vyber zadat meno tabulky znova alebo skoncit. SW si vypyta meno stlpca (mesto) v tabulke target, odkial bude brat hodnotu – vlastne nazov mesta, ku ktoremu sa bude snazit priradit okres a kraj. Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci). SW si vypyta meno stlpca (target_geolokacia), kam ma zapisat prepojenie mesta na patricny zaznam v geolokacnej tabulke master (kde je mesto zaradene do okresu a kraja). Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci). SW si vypyta meno stlpca (master_mesto) v tabulke master, kde je nazov mesta. Skontroluje jeho existenciu. Ak neexistuje, oznami to (a program skonci).
SW prejde na prvy riadok v tabulke target
SW skontroluje, ci uz nespracoval celu tabulku (vsetky riadky v tabulke), ak ano, vypise to a program sa ukonci. SW v tabulke target pozrie hodnotu v stlpci target_geolokacia. Ak je nenulova, preskoci na spracovanie dalsieho riadka. SW sa v tabulke target pozrie, aka hodnota je v stlpci mesto. Ak je nulova, preskoci na spracovanie dalsieho riadku, ak nenulova, vypise ju. SW sa snazi najst rovnaku hodnotu v tabulke master v stlpci master_mesto. *** Ak ju najde, zapise v tabulke target v stlpci target_geolokacia prepojenie na patricny zaznam a prejde na spracovanie dalsieho riadku *** Ak zhodu nenajde, prejde na spracovanie dalsieho riadku.
Problem robia mesta Kosice a Bratislava – v geolokacnej tabulke je clenenie na mestske casti a u bratislavy clenenie na obvody – bude teda potrebne zaviest aj lokaciu Bratislava a Kosice (bez presnejsieho clenenia) – v tabulkach totiz taka lokacia je najbeznejsia. SW by nemal byt citlivy na diakritiku. SW by pocas pracovania mal nieco jednoduche vypisovat – nieco, co sa meni, nech je zrejme, ze program bezi a pracuje.
Na správne fungovanie programu je nutné aby bol nastavený názov primárneho kľúča v tabuľkách. V prípade, že je iný ako ‘_record_id’ je nutné upraviť hodnotu premennej primary_key_name v súbore lib/config.yml
Michal Olah
Copyright © 2010 Michal Olah. Licensed under the ??? License: link_to_licence