Import stromu pro vyber
Created by: msgre
Caute, potrebuju pomoct s "FINAL" tabulkou https://docs.google.com/spreadsheets/d/1mPvFm_5fgUjswlrOIkU2pnnTP4oIpy5b6GfxZFpt8iU/edit#gid=645564954
Podle me bychom meli dbat na to, aby se data mezi sebou propojovala a meli bychom aktivne branit vytvareni duplicit. Napr. pokud uz mame v systemu seznam titulu (a to mame), tabulky ktere s titulem operuji by mely obsahovat pouze jeho hodnoty (viz model qualifications.Title):
Bc.
CŽV
Dis.
maturita
Mgr.
výuční list
Tomu ale neodpovida obsah sloupce C, ve kterem jsou pouzity tyto hodnoty (cislo za nazvem odpovida poctu, kolikrat je dana hodnota v tabulce pouzita):
Mgr. 65
Bc. 24
Dis. 18
maturita 16
- 4
rodilý mluvčí/ na úrovni rodilého mluvčího 4
výuční list 4
střední vzdělání 3
výkonný či výtvarný umělec 2
None 1
základní vzdělání 1
Na prvni pohled je jasne, ze hodnoty jako rodilý mluvčí/ na úrovni rodilého mluvčího
titulem nejsou.
Vyresit se to da prinejmensim temito zpusoby:
- doplnime do stavajiciho modelu qualifications.Title hodnoty jako "rodilý mluvčí/ na úrovni rodilého mluvčího"; tohle je podle me blbost, tituly to nejsou (model Title bude driv nebo pozdeji pouzity v jinem kontextu a nebude to davat smysl)
- zalozime uplne novy model, treba EduTitle a nalijeme do nej vsechny hodnoty ze sloupce C; tohle je druhe nejjednodussi reseni, nenarusime logiku puvodniho modelu qualifications.Title, ale pridavame do systemu duplicity -- na vice nez jednom miste mame definovane tituly jako Mgr, Bc, apod. Treba to je zamer, ale obecne bychom meli data spis propojovat, nez vytvaret proste ciselniky bez vazeb
- upravime stavajiciho model qualifications.Title; pridame do nej nejake dalsi metadata, ze kterych bude jasne co ktera hodnota reprezentuje; nabizi se napr. boolean flag, kterym se da najevo ze treba Bc. je opravdu titul, ale "rodilý mluvčí/ na úrovni rodilého mluvčího" neco jineho
- ulozime data z FINAL tabulky jinak; namisto atributu odpovidajicimu sloupci C bude mit novy model atributy dva; jeden bude ukazovat na existujici model qualifications.Title, a druhy na nove vytvoreny model, ve kterem budou data jako "rodilý mluvčí/ na úrovni rodilého mluvčího" nebo "výkonný či výtvarný umělec"; vyhoda je, ze nebudeme michat jabka s hruskama, v systemu nebudou duplicity, ale mnozinu pripustnych hodnot neziskame jednim dotazem z jedne tabulky, ale prinejmensim dvema dotazy nad dvema tabulkami (s cimz se pak pracuje mnohem sloziteji)
Tahle past (tj. jestli konkretni sloupec odpovida necemu existujicimu, nebo reprezentuje novy dataset) se tyka vice sloupcu. Namatkou "kde", "Stupen", apod.
Abychom se z toho nejak vyhrabali, bude treba:
- rozjet lokalne (nebo na serveru) stavajici verzi aplikace
- nacist do ni initial data (viz README.md)
- vypsat ze sloupcu "FINAL" tabulky unikatni hodnoty
- porovnat s daty ktere uz v aplikaci mame
- pro kazdy sloupec vydat verdikt, jestli data odpovidaji nekteremu z existujich modelu, nebo se ma zalozit model fungl novy
Tohle je punk. Za tyden pravdepodobne budeme resit podobny scenar nad novym sheetem. Pokud jsou s tim vsichni smireni, kroky popsane vyse se daji zobecnit a znovu aplikovat. Ideal to neni, ale pokud se dela prvni MVP, prezit se to da.
Alternativa je sednout si k projektu s analytikem, a vymyslet datovy model jeste pred tim, nez se zacne implementovat. Zadani programatorum predavat ne pouze ve forme dat, ale spolecne s informaci, jake vztahy mezi daty jsou a ktere existujici struktury se navzajem propojuji.
Dejte prosim vedet v komentech jak dal pokracovat. Diky