Refactored to use database
#5 Switched to use maria database to store song information #7 Added spring and hibernate support #8 Added song upload functionality
This commit is contained in:
@@ -6,3 +6,58 @@ CREATE TABLE eighttrack.discord_guild (
|
||||
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',
|
||||
uuid varchar(100) NOT NULL COMMENT 'Unique Identifier',
|
||||
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_uuid_UN (uuid),
|
||||
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',
|
||||
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),
|
||||
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;
|
||||
Reference in New Issue
Block a user