| 157 | | == |
| | 157 | == Дуел |
| | 158 | |
| | 159 | Оваа табела е дефинирана се ограничување кое проверува дали домаќинот и противникот се различни, и надворешни клучеви кои референцираат кон натпревар (ако е `NULL` тогаш се подразбира дека е пријателска утакмица), клучевите `home_team_id` и `away_team_id` кои референцираат кон спортски тим, надворешен клуч кој референцира кон локација, и клуч кој референцира кон спортска категорија. Вредностите на `home_team_score` и `away_team_score` се `NULL` доколку дуелот е закажан за во иднина. |
| | 160 | |
| | 161 | Со кверито се генерираат податоци за дуели помеѓу национални репрезентации од иста спортска категорија. За секој дуел случајно се избира локација, се генерира случаен датум во минатото или иднината за најмногу 5 години. За веќе одиграните натпревари се доделуваат случајни резултати според правилата дефинирани во `score_logic` за соодветниот спорт. На овој начин се добиваат реалистични податоци со различни датуми, локации и резултати за повеќе спортови. |
| | 162 | |
| | 163 | |
| | 164 | [[Image(duel.png)]] |
| | 165 | |
| | 166 | Дополнително го имаме и ова квери за генерирање на на дуели на нерепрезентациски натпревари. Работи на сличен принцип на претходното, но ова квери извршува дополнителни проверки. |
| | 167 | |
| | 168 | Двете кверија генерираат вкупно 16.069.000 дуели. |
| | 169 | |
| | 170 | [[Image(duel_2.png)]] |
| | 171 | |
| | 172 | |
| | 173 | == Човек |
| | 174 | |
| | 175 | Табелата `PERSON` е дефинирана со ограничување датумот на раѓање да е подоцна од 01.01.1900 и полот да има вредност `M` или `F`. Дополнително има дефинирано надворешен клуч кој референцира кон табелата за држава. |
| | 176 | |
| | 177 | Генерирање на редици за оваа табела се врши во две кверија, едното генерира машки, дугото женски. Генерирањето користи привремени табели `temp_male_names`, `temp_female_names` и `temp_surnames` кои се генерирани од готово множество од имиња и презимиња. Во двете си избира случајен датум на раѓање, случајно име и презиме и случајна држава на раѓање, потоа се генерира ЕМБГ според генерираниот датум на раѓање. |
| | 178 | |
| | 179 | Од ова се генерирани 13.206.598 редици. |
| | 180 | |
| | 181 | [[Image(person.png)]] |
| | 182 | |
| | 183 | == Судија |
| | 184 | |
| | 185 | Табелата `REFEREE` наследува од `PERSON` па затоа примарниот клуч е исто така надворешен клуч кој референцира кон човек и е поставено каскадно да се брише. Исто така има и надворешни клучеви кои референцираат кон федерација и спортска категорија соодветно. |
| | 186 | |
| | 187 | Пред да се генерираат судии, се креира привремена табела `tmp_people` која ѓи содржи сите луѓе подредени на случаен начин. Со помош на оваа табела за секоја федерација се спојуваат 100 редици од привремената табела. Со ова се генерираат 5.594.200 судии. |
| | 188 | |
| | 189 | [[Image(referee.png)]] |
| | 190 | |
| | 191 | == Тренер |
| | 192 | |
| | 193 | Табелата `COACH`, исто како `REFEREE`, наследува од `PERSON` и затоа примарниот клуч е надворешниот клуч кој референцира кон човек е каскадно се брише. Исто има и надворешни клучеви кои референцираат кон федерација и спортска категорија. |
| | 194 | |
| | 195 | За генерирање податоци за оваа табел прво се креира нова привремена табела `tmp_people_no_referee` која ги содржи останатите вредности кои не се искористени во генерирање на судии. На сличен принцип како судии, се генерираат вреднстите и за тренер така за секој тим случајно се спојува федерација и се одбираат две случајни луѓе. За оваа табела се генерирани 552.125 редици. |
| | 196 | |
| | 197 | [[Image(coach.png)]] |
| | 198 | |
| | 199 | == Спортист |
| | 200 | |
| | 201 | `SPORTSPERSON` е дефинирана со надворешен клуч кој референцира човек и е поставено каскадно да се брише (бидејќи наследува од таа табела), и клуч кој референцира спортска категорија. |
| | 202 | |
| | 203 | Пред генерирање на податоци се креира привремена табела `tmp_sportspersons_pool` која ги содржи сите останатите луѓе што не биле доделени како сидуја или тренер. Според тимовите се доделуваат случајно спортски категории на спортистот. Вака се генерираат 2.180.588 спортисти. |
| | 204 | |
| | 205 | [[Image(sportsperson.png)]] |
| | 206 | |
| | 207 | == ... |