Skip to content

Instantly share code, notes, and snippets.

@MatrixSenpai
Created August 12, 2019 17:29
Show Gist options
  • Save MatrixSenpai/181f31fc8463f0741f8421735d78f6b1 to your computer and use it in GitHub Desktop.
Save MatrixSenpai/181f31fc8463f0741f8421735d78f6b1 to your computer and use it in GitHub Desktop.
Data Structure

General Structure

  • Region
    • Team
      • Player (not implemented)
    • League
      • Season
        • Winner
        • Split
          • Winner
          • Tournament
            • Winner
            • Match
              • Winner
              • Teams Playing
              • Game (not implemented)
                • Winner
                • Teams Playing

SQL Structure

CREATE 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);
CREATE 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);
CREATE 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);
CREATE 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);
CREATE 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);
CREATE 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);
CREATE 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);
CREATE 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`));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment