Files
eight-track/src/main/resources/database/migration/mariadb/Tables/V01_000_000__initial_tables.sql
Isaac Parenteau fe4c25cc4c Rearranged where the uuid was stored.
#5 Added event handlers back
2019-10-06 23:38:15 -05:00

63 lines
3.1 KiB
SQL

CREATE TABLE eighttrack.discord_guild (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Auto increment primary key',
guild_id bigint(20) NOT NULL COMMENT 'id of the discord guild',
guild_name varchar(100) NOT NULL COMMENT 'name of the discord guild',
date_joined datetime DEFAULT NULL COMMENT 'date the guild joined',
PRIMARY KEY (id),
UNIQUE KEY guild_UN (guild_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Information about discord guild';
CREATE TABLE eighttrack.song (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Primary Key',
title varchar(500) NOT NULL COMMENT 'title of song',
artist varchar(500) DEFAULT NULL COMMENT 'songs artist',
album varchar(500) DEFAULT NULL COMMENT 'songs album',
genre varchar(500) DEFAULT NULL COMMENT 'songs genre',
track_number varchar(100) DEFAULT NULL COMMENT 'track number',
disc_number varchar(100) DEFAULT NULL COMMENT 'disc number',
release_year varchar(100) DEFAULT NULL COMMENT 'release year',
duration bigint(20) DEFAULT NULL COMMENT 'songs duration',
file_path varchar(5000) NOT NULL COMMENT 'file location on local file system',
file_hash varchar(40) NOT NULL COMMENT 'sha1 hash of file',
date_added timestamp NULL DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY song_file_hash_UN (file_hash)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE eighttrack.guild_song (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
uuid varchar(100) NOT NULL COMMENT 'Unique Identifier',
guild bigint(20) NOT NULL COMMENT 'guild the song belongs to',
song bigint(20) NOT NULL COMMENT 'the song',
date_added timestamp NULL DEFAULT NULL COMMENT 'date added',
PRIMARY KEY (id),
UNIQUE KEY guild_song_UN (guild,song),
UNIQUE KEY guild_song_UN2 (uuid),
KEY guild_song_FK_1 (song),
CONSTRAINT guild_song_FK FOREIGN KEY (guild) REFERENCES eighttrack.discord_guild (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT guild_song_FK_1 FOREIGN KEY (song) REFERENCES eighttrack.song (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE eighttrack.guild_playlist (
id bigint(20) NOT NULL AUTO_INCREMENT,
guild bigint(20) NOT NULL,
userId bigint(20) NOT NULL,
playlist varchar(500) NOT NULL,
date_added timestamp NULL DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY guild_playlist_UN (guild,userId,playlist),
CONSTRAINT guild_playlist_FK FOREIGN KEY (guild) REFERENCES eighttrack.discord_guild (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE eighttrack.guild_playlist_song (
id bigint(20) NOT NULL AUTO_INCREMENT,
guild_playlist bigint(20) NOT NULL,
guild_song bigint(20) NOT NULL,
date_added timestamp NULL DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY guild_playlist_song_UN (guild_playlist,guild_song),
KEY guild_playlist_song_FK_1 (guild_song),
CONSTRAINT guild_playlist_song_FK FOREIGN KEY (guild_playlist) REFERENCES eighttrack.guild_playlist (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT guild_playlist_song_FK_1 FOREIGN KEY (guild_song) REFERENCES eighttrack.guild_song (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;