· 6 years ago · Aug 24, 2019, 04:20 PM
1# General Structure
2- Region
3 - Team
4 - Player (not implemented)
5 - League
6 - Season
7 - Winner
8 - Split
9 - Winner
10 - Tournament
11 - Winner
12 - Match
13 - Winner
14 - Teams Playing
15 - Game (not implemented)
16 - Winner
17 - Teams Playing
18
19SQL Structure
20```sql
21CREATE TABLE IF NOT EXISTS `Regions` (`id` VARCHAR(255) NOT NULL PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `acronym` VARCHAR(255) NOT NULL, `supported` TINYINT(1) NOT NULL DEFAULT 0, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL);
22CREATE TABLE IF NOT EXISTS `Leagues` (`id` VARCHAR(255) NOT NULL PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `acronym` VARCHAR(255) NOT NULL, `supported` TINYINT(1) NOT NULL DEFAULT 0, `logo` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `RegionId` VARCHAR(255) REFERENCES `Regions` (`id`) ON DELETE SET NULL ON UPDATE CASCADE);
23CREATE TABLE IF NOT EXISTS `Seasons` (`id` VARCHAR(255) NOT NULL PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `year` INTEGER NOT NULL, `start` DATE, `end` DATE, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `LeagueId` VARCHAR(255) REFERENCES `Leagues` (`id`) ON DELETE SET NULL ON UPDATE CASCADE);
24CREATE TABLE IF NOT EXISTS `Splits` (`id` VARCHAR(255) NOT NULL PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `shortname` VARCHAR(255), `start` DATE, `end` DATE, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `SeasonId` VARCHAR(255) REFERENCES `Seasons` (`id`) ON DELETE SET NULL ON UPDATE CASCADE);
25CREATE TABLE IF NOT EXISTS `Tournaments` (`id` VARCHAR(255) NOT NULL PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `shortname` VARCHAR(255) NOT NULL, `teamCount` INTEGER DEFAULT 10, `description` VARCHAR(255), `start` DATE, `end` DATE, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `SplitId` VARCHAR(255) REFERENCES `Splits` (`id`) ON DELETE SET NULL ON UPDATE CASCADE);
26CREATE TABLE IF NOT EXISTS `Teams` (`id` VARCHAR(255) NOT NULL PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `acronym` VARCHAR(255) NOT NULL, `logo` VARCHAR(255), `active` TINYINT(1) NOT NULL DEFAULT 0, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `RegionId` VARCHAR(255) REFERENCES `Regions` (`id`) ON DELETE SET NULL ON UPDATE CASCADE);
27CREATE TABLE IF NOT EXISTS `Matches` (`id` VARCHAR(255) NOT NULL PRIMARY KEY, `name` VARCHAR(255) NOT NULL, `shortname` VARCHAR(255) NOT NULL, `number_of_games` INTEGER DEFAULT 1, `start` DATETIME, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `TournamentId` VARCHAR(255) REFERENCES `Tournaments` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, `winnerId` VARCHAR(255) REFERENCES `Teams` (`id`) ON DELETE SET NULL ON UPDATE CASCADE);
28CREATE TABLE IF NOT EXISTS `PlayTeam` (`createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, `MatchId` VARCHAR(255) NOT NULL REFERENCES `Matches` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, `TeamId` VARCHAR(255) NOT NULL REFERENCES `Teams` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY (`MatchId`, `TeamId`));
29```