CREATE TABLE MEDIA (
UUIDSTRING VARCHAR(255) NOT NULL,
TITLE VARCHAR(100) NOT NULL,
ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE BOOK (
ISBN VARCHAR(100) NOT NULL,
MEDIA_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (MEDIA_ID) REFERENCES MEDIA(ID)
);
CREATE TABLE PERSON (
NAME VARCHAR(100) NOT NULL,
AGE INTEGER NOT NULL,
SSN VARCHAR(100) NOT NULL,
ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE ENGAGEMENT (
UUIDSTRING VARCHAR(255) NOT NULL,
ROLE VARCHAR(100) NOT NULL,
ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
PERSON_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (PERSON_ID) REFERENCES PERSON(ID),
MEDIA_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (MEDIA_ID) REFERENCES MEDIA(ID)
);
CREATE TABLE LIBRARY (
NAME VARCHAR(100) NOT NULL,
ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY
);
CREATE TABLE MEDIACHARACTER (
UUIDSTRING VARCHAR(255) NOT NULL,
ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(100) NOT NULL
);
CREATE TABLE MOVIE (
URLIMDB VARCHAR(100) NOT NULL,
PLAYLENGTH INTEGER NOT NULL,
MEDIA_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (MEDIA_ID) REFERENCES MEDIA(ID)
);
CREATE TABLE PHYSICALMEDIA (
UUIDSTRING VARCHAR(255) NOT NULL,
ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
STATUS VARCHAR(50) NOT NULL,
LOCATION VARCHAR(100) NOT NULL,
LIBRARY_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (LIBRARY_ID) REFERENCES LIBRARY(ID)
);
CREATE TABLE MEDIACHARACTER_PERSON (
PERSON_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (PERSON_ID) REFERENCES PERSON(ID),
MEDIACHARACTER_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (MEDIACHARACTER_ID) REFERENCES MEDIACHARACTER(ID)
);
CREATE TABLE MEDIA_MEDIACHARACTER (
MEDIACHARACTER_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (MEDIACHARACTER_ID) REFERENCES MEDIACHARACTER(ID),
MEDIA_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (MEDIA_ID) REFERENCES MEDIA(ID)
);
CREATE TABLE MEDIA_PHYSICALMEDIA (
PHYSICALMEDIA_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (PHYSICALMEDIA_ID) REFERENCES PHYSICALMEDIA(ID),
MEDIA_ID INTEGER NOT NULL,
CONSTRAINT FOREIGN KEY (MEDIA_ID) REFERENCES MEDIA(ID)
);