Changes between Version 4 and Version 5 of DatabaseCreation


Ignore:
Timestamp:
06/15/26 09:35:26 (6 days ago)
Author:
231267
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseCreation

    v4 v5  
    205205[[Image(sportsperson.png)]]
    206206
    207 == ...
     207== Тренирање тим
     208
     209Табелата `COACHING_TEAM` претставува врска помеѓу `COACH` и `SPORT_TEAM`. Дефинирана е ограничување за проверка на валидност на почетен и кране датум, како и надворешни клучеви кои референцираат кон спортски тим и тренер соодветно. Дополнително, има дефинирано комплексен примарен клуч создаден од `team_id` и `coack_ssn`.
     210
     211Полнење на ова табела се врши така што за секој се доделува до два тренери и се доделува случаен почетен датум пред 6 до 7 години во минатото. Ова генерира 478.725 редици.
     212
     213[[Image(coaching_team.png)]]
     214
     215
     216== Договор
     217
     218`SPORTSPERSON_CONTRACT` е дефиниран со ограничувања кои проверуваат валидноста на почетниот и крајниот датум и проверуваат `payout` да е позитивен број. Дополнително дефинирани се надворешни клучеви кои референцираат спортист и спортски клуб соодветно.
     219
     220Податоците за оваа табела се генерираат со три кверија. Првото генерира договори во последните 5 до 6 години за секој тим на секој клуб што не е национална репрезентација.
     221
     222Второто квери на исти начин генерира договори за секој тим на секој клуб што е национална репрезентација.
     223
     224Последното квери генерира историски податоци, односно генерира договори кои се истечени. Го генерира на сличен начин како првото, за секој тим на секој клуб што не е репрезенација, но почетниот датум е пред 13 до 14 години, а крајниот датум е до пред 11 до 12 години.
     225
     226Овие кверија генерираат 4.107.739 договори.
     227
     228[[Image(sportsperson_contract.png)]]
     229
     230== Екипа
     231
     232Табелата `TEAM_ROSTER` претставува врска помеѓу играч, неговиот тим и улество во дуел, и затоа е дефинирана со комплексен клуч кој ги содржи `player_ssn`, `team_id` и `duel_id`. Дополнително е дефинирано ограничување кое проверува валидноста на почетно и крајно време, дефинирани се и надворешни клучеви кои референцираат спортист, спортски тим и дуел.
     233
     234
     235Пред да се генерираат податоците, прво се креираат привремени табели `tmp_contract_pool`, `tmp_duel_pool` кои служат како множество од кое да се генерираат податоците. Дополнително, има и табела `team_roster_progress` која служи за следење информации колку се генерирани податоците. Во случај да преќине процедурата може пак да продолжи од последната залувана точка.
     236
     237Бидејќи многу време му требаше на ова квери да се изврши и често паѓаше беше создадена привремена процедура `insert_team_roster_batched_fixed`. Таа процедура обработува во серии од по 10.000 дуели, при што за домашниот и гостинскиот тим се избираат играчи со активни договори кои одговараат на спортската категорија и клубот на тимот. По секоја серија се извршува `COMMIT` и се ажурира контролна точка. Дополнително, за мал дел од играчите се генерира пократко време на настап со цел да се добијат пореалистични податоци. Ova процедура генерирапе над 80 милиони редици.
     238
     239[[Image(team_roster.png)]]
     240
     241== Судење на дуел
     242
     243...