63 lines
3.1 KiB
SQL
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; |