Changes between Version 5 and Version 6 of DatabaseCreation


Ignore:
Timestamp:
06/15/26 10:19:39 (2 days ago)
Author:
231267
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseCreation

    v5 v6  
    235235Пред да се генерираат податоците, прво се креираат привремени табели `tmp_contract_pool`, `tmp_duel_pool` кои служат како множество од кое да се генерираат податоците. Дополнително, има и табела `team_roster_progress` која служи за следење информации колку се генерирани податоците. Во случај да преќине процедурата може пак да продолжи од последната залувана точка.
    236236
    237 Бидејќи многу време му требаше на ова квери да се изврши и често паѓаше беше создадена привремена процедура `insert_team_roster_batched_fixed`. Таа процедура обработува во серии од по 10.000 дуели, при што за домашниот и гостинскиот тим се избираат играчи со активни договори кои одговараат на спортската категорија и клубот на тимот. По секоја серија се извршува `COMMIT` и се ажурира контролна точка. Дополнително, за мал дел од играчите се генерира пократко време на настап со цел да се добијат пореалистични податоци. Ova процедура генерирапе над 80 милиони редици.
     237Бидејќи многу време му требаше на ова квери да се изврши и често паѓаше беше создадена привремена процедура `insert_team_roster_batched_fixed`. Таа процедура обработува во серии од по 10.000 дуели, при што за домашниот и гостинскиот тим се избираат играчи со активни договори кои одговараат на спортската категорија и клубот на тимот. По секоја серија се извршува `COMMIT` и се ажурира контролна точка. Дополнително, за мал дел од играчите се генерира пократко време на настап со цел да се добијат пореалистични податоци. Oвa процедура генерирапе над 80 милиони редици.
    238238
    239239[[Image(team_roster.png)]]
     
    241241== Судење на дуел
    242242
    243 ...
     243Табелата `REFEREEING_DUEL` ја претставува врската помеѓу `REFEREE` и `DUEL`, па затоа е дефинирана со комплексен примарен клуч кој ги содржи вредностите `referee_ssn` и `duel_id`. Дополнително се дефенирани и надворешни клучеви кои референцираат кој судија и кон дуел соодветно.
     244
     245При генерирање првин се генерираат привремените табели `tmp_duel_federation`, каде за секој дуел се генерира соодветна федерација (ако дуелот е дел од наптревар се користи организациската федерација, ако не се користи по случајен избор), и `tmp_ref_assignment` која креира пар за секој судија случаен дуел.
     246
     247Од `tmp_ref_assignment` се внесуваат првата фаза на податоци во табелата.
     248
     249Се креира дополнителна привремена табела `tmp_ref_assignment2` која е слична на првата, но додава поместување за да се рапоредат судиите во разни дуели, односно да немаме кластерирање. Исто така се внесуваат сите податоци од `tmp_ref_assignment2` во `REFEREEING_DUEL`.
     250
     251Се вкупно се генерираат 32.543.880 редици.
     252
     253[[Image(refereeing_duel.png)]]
     254
     255== Поени
     256
     257Табелата `SCORE` има цел да води евиденција за кој играч во кој дуел кога добил гол. Таа е дефинирана со надворешни клучеви кои референцираат кон играч и кон дуел соодветно.
     258
     259Пред да се генерираат податоцире за `SCORE` се креираат привремени табели `tmp_score_data`, која ги зима сите завршени дуели и времетраењето на секој, и `tmp_roster_data` која ги зима сите валидни играчи.
     260
     261Генерирање на податоци се прави во две `INSERT` кверија, така што во двете кверија за секој гол се избира случаен момент во текот на дуелот од сите активни играчи во тој момент се бира еден случаен играч и се запишува како стрелец на голот. Едното квери ги генерира за домаќин головите, другото за противникот.
     262
     263Со ова се генерираат 30.000.000 редици.
     264
     265[[Image(score.png)]]
     266
     267
     268