CPP_BRIC_SE_PROJECT/docs/brcm.sql

173 lines
4.6 KiB
MySQL
Raw Normal View History

2022-11-18 22:36:00 -08:00
2022-11-19 21:10:53 -08:00
CREATE SEQUENCE appointments_id_seq;
2022-11-18 22:36:00 -08:00
2022-11-19 21:10:53 -08:00
CREATE TABLE Appointments (
id INTEGER NOT NULL DEFAULT nextval('appointments_id_seq'),
2022-11-18 22:36:00 -08:00
StartTime TIMESTAMP NOT NULL,
EndTime TIMESTAMP NOT NULL,
ActivityId INTEGER NOT NULL,
CustomerId INTEGER NOT NULL,
2022-11-19 21:10:53 -08:00
status VARCHAR,
2022-11-18 22:36:00 -08:00
CONSTRAINT appointments_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
ALTER SEQUENCE appointments_id_seq OWNED BY Appointments.id;
2022-11-18 22:36:00 -08:00
2022-11-19 21:10:53 -08:00
CREATE TABLE Activities (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
Name VARCHAR NOT NULL,
Price DOUBLE PRECISION NOT NULL,
CONSTRAINT activities_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
CREATE TABLE HistoricalPrice (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
Date DATE NOT NULL,
Price DOUBLE PRECISION NOT NULL,
ActivityId INTEGER NOT NULL,
CONSTRAINT historicalprice_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
CREATE TABLE DiscountScheme (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
2022-11-19 21:10:53 -08:00
PriceDiscount DOUBLE PRECISION,
PercentDiscount DOUBLE PRECISION,
CustomerType VARCHAR,
StartDate DATE,
EndDate DATE,
2022-11-18 22:36:00 -08:00
CONSTRAINT discountscheme_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
CREATE SEQUENCE addresses_id_seq;
2022-11-18 22:36:00 -08:00
2022-11-19 21:10:53 -08:00
CREATE TABLE Addresses (
id INTEGER NOT NULL DEFAULT nextval('addresses_id_seq'),
Street VARCHAR,
Number VARCHAR,
ZipCode INTEGER,
City VARCHAR,
State VARCHAR,
2022-11-18 22:36:00 -08:00
CONSTRAINT addresses_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
ALTER SEQUENCE addresses_id_seq OWNED BY Addresses.id;
2022-11-18 22:36:00 -08:00
2022-11-19 21:10:53 -08:00
CREATE TABLE Customers (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
FirstName VARCHAR NOT NULL,
2022-11-19 21:10:53 -08:00
LastName VARCHAR,
DateOfBirth DATE,
Phone VARCHAR,
2022-11-18 22:36:00 -08:00
AddressId INTEGER NOT NULL,
CONSTRAINT customers_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
CREATE TABLE Orders (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
Date DATE NOT NULL,
Time TIME NOT NULL,
CustomerId INTEGER NOT NULL,
DiscountApplied DOUBLE PRECISION NOT NULL,
TotalPrice VARCHAR NOT NULL,
DiscountSchemeId INTEGER NOT NULL,
CONSTRAINT orders_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
CREATE TABLE LineItems (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
ActivityId INTEGER NOT NULL,
Quantity INTEGER NOT NULL,
AppointmentId INTEGER NOT NULL,
OrderId INTEGER NOT NULL,
CONSTRAINT lineitems_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
CREATE TABLE Students (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
EnterDate DATE NOT NULL,
Major VARCHAR NOT NULL,
Minor VARCHAR NOT NULL,
GradDate DATE NOT NULL,
CONSTRAINT students_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
CREATE TABLE Professors (
2022-11-18 22:36:00 -08:00
id INTEGER NOT NULL,
Department VARCHAR NOT NULL,
Office VARCHAR NOT NULL,
Research VARCHAR NOT NULL,
CONSTRAINT professors_pk PRIMARY KEY (id)
);
2022-11-19 21:10:53 -08:00
ALTER TABLE LineItems ADD CONSTRAINT appointments_lineitems_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (AppointmentId)
2022-11-19 21:10:53 -08:00
REFERENCES Appointments (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE HistoricalPrice ADD CONSTRAINT activities_historicalprice_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (ActivityId)
2022-11-19 21:10:53 -08:00
REFERENCES Activities (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE LineItems ADD CONSTRAINT activities_lineitems_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (ActivityId)
2022-11-19 21:10:53 -08:00
REFERENCES Activities (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE Orders ADD CONSTRAINT discountscheme_orders_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (DiscountSchemeId)
2022-11-19 21:10:53 -08:00
REFERENCES DiscountScheme (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE Customers ADD CONSTRAINT addresses_customers_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (AddressId)
2022-11-19 21:10:53 -08:00
REFERENCES Addresses (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE Orders ADD CONSTRAINT customers_orders_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (CustomerId)
2022-11-19 21:10:53 -08:00
REFERENCES Customers (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE Students ADD CONSTRAINT customers_students_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (id)
2022-11-19 21:10:53 -08:00
REFERENCES Customers (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE Professors ADD CONSTRAINT customers_professors_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (id)
2022-11-19 21:10:53 -08:00
REFERENCES Customers (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;
2022-11-19 21:10:53 -08:00
ALTER TABLE LineItems ADD CONSTRAINT orders_lineitems_fk
2022-11-18 22:36:00 -08:00
FOREIGN KEY (OrderId)
2022-11-19 21:10:53 -08:00
REFERENCES Orders (id)
2022-11-18 22:36:00 -08:00
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE;