Cantata 3 Database

Compared to Cantata2, this Cantata3 database information takes into account the move to Laravel. Also, when setting up the Model/DB Tables, noticed that the Keywords for Cantata2 only applied to the Song Level, but perhaps should have been at the File level as well. This would allow filtering or tagging for various people leading - to make it quicker to select keys, etc.

Database Namequizkidn_cantata3
User Namequizkidn_can3
FILE_METAidINT UNSIGNED
SONG_NAMEVARCHAR(128)
FILE_NAMEVARCHAR(128)Will hold URL if TYPE=URL
MUSIC_KEYVARCHAR(16)
COMMENTSVARCHAR(1024)
TYPEVARCHAR(12)One of 'Chart', 'Audio', or 'URL'
created_atDATETIME
updated_atDATETIME
KEYWORDSidINT UNSIGNED
NAMEVARCHAR(64)
DEFAULT_VALUEVARCHAR(8)
created_atDATETIME
updated_atDATETIME
KEYWORD_FILE_META_XREFidINT UNSIGNED
KEYWORD_IDINT UNSIGNED
FILE_META_IDINT UNSIGNED
created_atDATETIME
updated_atDATETIME
LISTidINT UNSIGNED
NAMEVARCHAR(100)
LIST_DATEDATETIME
TYPEVARCHAR(64)
COMMENTSVARCHAR(1024)
created_atDATETIME
updated_atDATETIME
LIST_ITEMidINT UNSIGNED
FILE_META_IDINT UNSIGNED
DISPLAY_TITLEVARCHAR(100)
ITEM_ORDERINT
created_atDATETIME
updated_atDATETIME

SQL To Create Tables

create table KEYWORDS (ID INT PRIMARY KEY, NAME varchar(64), DEFAULT_VALUE varchar(8), created_at datetime, updated_at datetime) ENGINE=InnoDB DEFAULT CHARSET=latin1;

create table FILE_META (ID INT PRIMARY KEY, SONG_NAME VARCHAR(128) NOT NULL, FILE_NAME varchar(128), LAST_UPDATED datetime, MUSIC_KEY varchar(16), COMMENTS varchar(1024), TYPE varchar(12), created_at datetime, updated_at datetime)
 ENGINE=InnoDB DEFAULT CHARSET=latin1;

create table KEYWORD_FILE_META_XREF (ID INT PRIMARY KEY, 
KEYWORD_ID INT NOT NULL, 
FILE_META_ID INT NOT NULL, created_at datetime, updated_at datetime,
FOREIGN KEY (KEYWORD_ID) REFERENCES KEYWORD (ID),
FOREIGN KEY (FILE_META_ID) REFERENCES FILE_META (ID)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

create table LIST (ID INT PRIMARY KEY, LIST_DATE DATETIME, 
NAME VARCHAR(100), TYPE VARCHAR(64), COMMENTS VARCHAR(1024), created_at datetime, updated_at datetime) ENGINE=InnoDB DEFAULT CHARSET=latin1;

create table LIST_ITEM (ID INT PRIMARY KEY, LIST_ID INT, FILE_META_ID INT, 
DISPLAY_TITLE VARCHAR(100), SONG_ORDER int, created_at datetime, updated_at datetime, 
FOREIGN KEY (LIST_ID) REFERENCES LIST(ID),
FOREIGN KEY (FILE_META_ID) REFERENCES FILE_META(ID)) ENGINE=InnoDB DEFAULT CHARSET=latin1;;