Database Mapping
Country / countries
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Maps to | 
|---|---|---|---|---|---|---|
| country | id | int unsigned | false | true | countries.id | |
| country | iso_key | varchar(10) | false | false | countries.iso_key | |
| country | name | text | false | false | countries.name | 
Match 1v1 / sets + set_items
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Comment | Maps to | 
|---|---|---|---|---|---|---|---|
| match_1v1 | id | int unsigned | false | true | sets.id | ||
| match_1v1 | date | date | true | false | when this match was played (null=auto from tournament) | sets.played_at (conversion to dateTime) | |
| match_1v1 | tournament_id | int unsigned | true | false | sets.tournament_id (foreign) | ||
| match_1v1 | stage_id | int unsigned | false | false | sets.stage_id (foreign) | ||
| match_1v1 | player_1_id | int unsigned | false | false | set_item.entity_id (foreign) | ||
| match_1v1 | player_2_id | int unsigned | false | false | set_item.entity_id (foreign) | ||
| match_1v1 | score_1 | int unsigned | false | false | set_item.score | ||
| match_1v1 | score_2 | int unsigned | false | false | set_item.score | ||
| match_1v1 | create_user | int unsigned | false | created_user | false | sets.created_user_id (foreign) | |
| match_1v1 | create_time | datetime | false | false | timestamps() | ||
| match_1v1 | update_user | int unsigned | false | update_user | false | sets.updated_user_id (foreign) | |
| match_1v1 | update_time | datetime | false | false | timestamps() | 
Match 1v1 Event / - (removed)
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Maps to | 
|---|---|---|---|---|---|---|
| match_1v1_event | id | int unsigned | false | true | - | |
| match_1v1_event | date | date | true | false | - | |
| match_1v1_event | time | time | true | false | - | |
| match_1v1_event | tournament_id | int unsigned | false | tournament_id_2 | false | - | 
| match_1v1_event | stage_id | int unsigned | false | stage_id | false | - | 
| match_1v1_event | player_1_id | int unsigned | true | tournament_id | false | - | 
| match_1v1_event | player_2_id | int unsigned | true | tournament_id | false | - | 
| match_1v1_event | bo | int unsigned | true | false | - | |
| match_1v1_event | create_user | int unsigned | false | create_user | false | - | 
| match_1v1_event | create_time | datetime | false | false | - | |
| match_1v1_event | update_user | int unsigned | false | update_user | false | - | 
| match_1v1_event | update_time | datetime | false | false | - | 
Player / players
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Comment | Maps to | 
|---|---|---|---|---|---|---|---|
| player | id | int unsigned | false | true | players.id | ||
| player | name | varchar(30) | false | name | false | players.name | |
| player | alias | varchar(255) | false | false | comma-separated | players.aliases (JSON array of alias names: [“alias1”, “alias2”]) | |
| player | team_id | int unsigned | true | team_id | false | players.team_id (foreign) | |
| player | country_key | varchar(10) | true | false | players.country_id (foreign, lookup id?) | ||
| player | initial_elo_1v1 | int unsigned | true | false | players.base_elo | ||
| player | voobly_id | int unsigned | true | false | players.voobly_id | ||
| player | steam_id | varchar(40) | true | false | players.steam_id | ||
| player | steam_id_failed | varchar(40) | true | false | players.steam_id_failed | ||
| player | twitch | text | true | false | merge into players.socials (‘{“name”: “twitch”, “value”: “ | ||
| player | youtube | text | true | false | merge into players.socials (‘{“name”: “youtube”, “value”: “ | ||
| player | text | true | false | merge into players.socials (‘{“name”: “twitter”, “value”: “ | |||
| player | text | true | false | merge into players.socials (‘{“name”: “facebook”, “value”: “ | |||
| player | create_user | int unsigned | false | create_user | false | players.created_user_id (foreign) | |
| player | create_time | datetime | false | false | timestamps() | ||
| player | update_user | int unsigned | false | update_user | false | players.updated_user_id (foreign) | |
| player | update_time | datetime | false | false | timestamps() | 
Player Info / players_info (TODO: what is the use case for this?)
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Maps to | 
|---|---|---|---|---|---|---|
| player_info | id | int unsigned | false | true | players_info.id | |
| player_info | player | int unsigned | false | player | false | players_info.player_id (foreign) | 
| player_info | type | varchar(255) | false | false | players_info.type | |
| player_info | value_int | int | true | false | players_info.value_int | |
| player_info | value_str | text | true | false | players_info.value_str | |
| player_info | create_time | datetime | false | false | timestamps() | |
| player_info | create_user | int unsigned | false | create_user | false | players_info.created_user_id (foreign) | 
Stage / stages
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Maps to | 
|---|---|---|---|---|---|---|
| stage | id | int unsigned | false | true | stages.id | |
| stage | name | text | false | false | stages.name | |
| stage | bracket | int unsigned | false | false | stages.bracket (TODO: could be foreign and own table?) | |
| stage | index | int unsigned | false | false | stages.index | |
| stage | weight | float | false | false | stages.weight (convert to integer 1 => 10, intval(stage.weight * 10)) | |
| stage | importance | int unsigned | false | false | stages.importance | 
Team / teams
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Maps to | 
|---|---|---|---|---|---|---|
| team | id | int unsigned | false | true | teams.id | |
| team | name | varchar(100) | false | name | false | teams.name | 
| team | tag | varchar(30) | false | false | teams.tag | |
| team | primary_color | varchar(30) | true | false | teams.primary_color | |
| team | secondary_color | varchar(30) | true | false | teams.secondary_color | |
| team | create_user | int unsigned | true | create_user | false | teams.created_user_id (foreign) | 
| team | create_time | datetime | true | false | timestamps() | |
| team | update_user | int unsigned | true | update_user | false | teams.updated_user_id (foreign) | 
| team | update_time | datetime | true | false | timestamps() | 
Tournament / tournaments
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Comment | Maps to | 
|---|---|---|---|---|---|---|---|
| tournament | id | int unsigned | false | true | tournaments.id | ||
| tournament | name | varchar(255) | false | name | false | tournaments.name | |
| tournament | short | varchar(100) | false | false | tournaments.short_name | ||
| tournament | start | date | true | false | tournaments.started_at (conversion to dateTime) | ||
| tournament | end | date | true | false | tournaments.ended_at (conversion to dateTime) | ||
| tournament | weight | int unsigned | false | false | tournaments.weight | ||
| tournament | type | enum(‘cup’,‘qualifier’) | false | false | tournaments.type | ||
| tournament | prizemoney | int unsigned | true | false | in $ | tournaments.prize_money | |
| tournament | parent_id | int unsigned | true | parent_id | false | tournaments.parent_tournament_id (foreign) | |
| tournament | structure | enum(‘single-elemination’,‘double-elimination’,‘league’,‘other’,‘group’,‘group-ko’) | false | false | tournaments.structure | ||
| tournament | evaluation | varchar(30) | true | false | tournaments.evaluation | ||
| tournament | website | text | true | false | tournaments.website | ||
| tournament | comment | text | true | false | tournaments.comments | ||
| tournament | create_user | int unsigned | false | create_user | false | tournaments.created_user_id (foreign) | |
| tournament | create_time | datetime | false | false | timestamps() | ||
| tournament | update_user | int unsigned | false | update_user | false | tournaments.updated_user_id (foreign) | |
| tournament | update_time | datetime | false | false | timestamps() | 
Tournament Info / tournaments_info
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Comment | Maps to | 
|---|---|---|---|---|---|---|---|
| tournament_info | id | int unsigned | false | true | tournaments_info.id | ||
| tournament_info | create_user | int unsigned | false | create_user | false | tournaments_info.created_user_id (foreign) | |
| tournament_info | create_time | datetime | false | false | timestamps() | ||
| tournament_info | tournament_id | int unsigned | false | tournament_id | false | tournaments_info.tournament_id (foreign) | |
| tournament_info | type | int unsigned | false | type | false | 1: challonge bracket, 2: bracket URL, 3: public res., 4: private res. | tournaments_info.type (enum) | 
| tournament_info | description | text | false | false | tournaments_info.description | ||
| tournament_info | value | text | false | false | tournaments_info.value | 
Tournament Result / tournaments_results
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Comment | Maps to | 
|---|---|---|---|---|---|---|---|
| tournament_result | id | int unsigned | false | true | tournaments_results.id | ||
| tournament_result | tournament | int unsigned | false | tournament | false | tournaments_results.tournament_id (foreign) | |
| tournament_result | player | int unsigned | false | player | false | tournaments_results.player_id (foreign) | |
| tournament_result | type | int unsigned | true | type | false | 1: win, …, 5: semi-finals, null: other | tournaments_results.type | 
| tournament_result | money | int unsigned | true | false | tournaments_results.money | ||
| tournament_result | source | text | true | false | tournaments_results.source | ||
| tournament_result | create_time | datetime | false | false | timestamps() | ||
| tournament_result | create_user | int unsigned | false | create_user | false | tournaments_results.created_user_id (foreign) | 
User / users .. permissions
| Table | Column | Data Type | Nullable | Indexes | Primary Key | Comment | Maps to | 
|---|---|---|---|---|---|---|---|
| user | id | int unsigned | false | true | users.id | ||
| user | name | varchar(100) | false | name | false | users.name | |
| user | pass | varchar(255) | false | false | removed due to social logins | ||
| user | rank | int unsigned | false | false | 1: admin, 2: normal | migrate to permission system | |
| user | allow_tournament | int unsigned | true | false | 0: nothing, 1: create, 2: and update, 3: and remove | migrate to permission system | |
| user | allow_player | int unsigned | true | false | migrate to permission system | ||
| user | allow_match | int | true | false | migrate to permission system | ||
| user | allow_see | int unsigned | true | false | 0: nothing, 1: stats | migrate to permission system |