Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

CREATE TABLE SubscriptionPlan

(
Price VARCHAR(10) NOT NULL,
SubscriptionID VARCHAR(30) NOT NULL,
PlanType VARCHAR(30) NOT NULL,
PRIMARY KEY (SubscriptionID)
);

CREATE TABLE Title


(
director VARCHAR(30) NOT NULL,
actor/actress VARCHAR(30) NOT NULL,
ratings VARCHAR(10) NOT NULL,
TitleID VARCHAR(30) NOT NULL,
PRIMARY KEY (TitleID)
);

CREATE TABLE Payment_Instrument


(
Card_Number VARCHAR(30) NOT NULL,
Instrument_Type VARCHAR(30) NOT NULL,
Expiration_Date DATE NOT NULL,
CVV VARCHAR(6) NOT NULL,
FirstName VARCHAR(30) NOT NULL,
LastName VARCHAR(30) NOT NULL,
PRIMARY KEY (Card_Number)
);

CREATE TABLE Customer


(
RealName VARCHAR(30) NOT NULL,
Card_Number VARCHAR(30) NOT NULL,
PRIMARY KEY (RealName),
FOREIGN KEY (Card_Number) REFERENCES Payment_Instrument(Card_Number)
);

CREATE TABLE Payment


(
paymentID VARCHAR(30) NOT NULL,
paymentDate DATE NOT NULL,
Card_Number VARCHAR(30) NOT NULL,
SubscriptionID VARCHAR(30) NOT NULL,
PRIMARY KEY (paymentID),
FOREIGN KEY (Card_Number) REFERENCES Payment_Instrument(Card_Number),
FOREIGN KEY (SubscriptionID) REFERENCES SubscriptionPlan(SubscriptionID)
);

CREATE TABLE Account


(
accountID VARCHAR(30) NOT NULL,
password VARCHAR(30) NOT NULL,
Email VARCHAR(30) NOT NULL,
paymentID VARCHAR(30) NOT NULL,
SubscriptionID VARCHAR(30) NOT NULL,
RecommondationID VARCHAR(30) NOT NULL,
PRIMARY KEY (accountID, paymentID, SubscriptionID),
FOREIGN KEY (paymentID) REFERENCES Payment(paymentID),
FOREIGN KEY (SubscriptionID) REFERENCES SubscriptionPlan(SubscriptionID),
FOREIGN KEY (RecommondationID) REFERENCES Recommendation_List(RecommendationID)
);

CREATE TABLE Genre


(
GenreID VARCHAR(30) NOT NULL,
staff VARCHAR(30) NOT NULL,
PRIMARY KEY (GenreID, staff),
FOREIGN KEY (staff) REFERENCES DataAnalytics(staff)
);

CREATE TABLE WatchLaterList


(
WatchID VARCHAR(30) NOT NULL,
accountID VARCHAR(30) NOT NULL,
paymentID VARCHAR(30) NOT NULL,
SubscriptionID VARCHAR(30) NOT NULL,
PRIMARY KEY (WatchID),
FOREIGN KEY (accountID, paymentID, SubscriptionID) REFERENCES Account(accountID,
paymentID, SubscriptionID)
);

CREATE TABLE DataAnalytics


(
staff VARCHAR(30) NOT NULL,
algorithm VARCHAR(30) NOT NULL,
TitleID VARCHAR(30) NOT NULL,
WatchID VARCHAR(30) NOT NULL,
PRIMARY KEY (staff),
FOREIGN KEY (TitleID) REFERENCES Title(TitleID),
FOREIGN KEY (WatchID) REFERENCES WatchLaterList(WatchID)
);

CREATE TABLE Recommendation_List


(
RecommendationID VARCHAR(30) NOT NULL,
staff VARCHAR(30) NOT NULL,
PRIMARY KEY (RecommendationID),
FOREIGN KEY (staff) REFERENCES DataAnalytics(staff)
);

CREATE TABLE belongs_to


(
TitleID VARCHAR(30) NOT NULL,
GenreID VARCHAR(30) NOT NULL,
PRIMARY KEY (TitleID, GenreID),
FOREIGN KEY (TitleID) REFERENCES Title(TitleID),
FOREIGN KEY (GenreID) REFERENCES Genre(GenreID)
);

CREATE TABLE watch&rate


(
TitleID VARCHAR(30) NOT NULL,
accountID VARCHAR(30) NOT NULL,
paymentID VARCHAR(30) NOT NULL,
SubscriptionID VARCHAR(30) NOT NULL,
PRIMARY KEY (TitleID),
FOREIGN KEY (TitleID) REFERENCES Title(TitleID),
FOREIGN KEY (accountID, paymentID, SubscriptionID) REFERENCES Account(accountID,
paymentID, SubscriptionID)
);

CREATE TABLE store_info


(
WatchID VARCHAR(30) NOT NULL,
TitleID VARCHAR(30) NOT NULL,
PRIMARY KEY (WatchID, TitleID),
FOREIGN KEY (WatchID) REFERENCES WatchLaterList(WatchID),
FOREIGN KEY (TitleID) REFERENCES Title(TitleID)
);

You might also like