CREATE TABLE GUEST (
gNo NUMBER(3) PRIMARY KEY,
gAT VARCHAR2(20) UNIQUE NOT NULL,
gLastName VARCHAR2(50) NOT NULL,
gFirstName VARCHAR2(50) NOT NULL,
gRegDate DATE NOT NULL
);
CREATE TABLE CATEGORY (
Name VARCHAR2(20) PRIMARY KEY,
PitchPrice NUMBER(4) NOT NULL,
PitchCount NUMBER(2) NOT NULL
);
CREATE TABLE PITCH (
pNo NUMBER(3) PRIMARY KEY,
pZone NUMBER(1) NOT NULL,
pSquareMeters NUMBER(3) NOT NULL,
pBookTimes NUMBER(2),
CategoryName VARCHAR2(20) NOT NULL,
FOREIGN KEY (CategoryName) REFERENCES CATEGORY(Name)
);
CREATE TABLE FACILITIES (
fName VARCHAR2(50) PRIMARY KEY,
fPrice NUMBER(2) NOT NULL
);
CREATE TABLE PHONE (
gNo NUMBER(3),
gPhoneNo VARCHAR2(15),
PRIMARY KEY (gNo, gPhoneNo),
FOREIGN KEY (gNo) REFERENCES GUEST(gNo) ON DELETE CASCADE
);
CREATE TABLE BOOKING (
gNo NUMBER(3),
pNo NUMBER(3),
gInDate DATE,
gOutDate DATE,
PRIMARY KEY (gNo, pNo, gInDate),
FOREIGN KEY (gNo) REFERENCES GUEST(gNo) ON DELETE CASCADE,
FOREIGN KEY (pNo) REFERENCES PITCH(pNo) ON DELETE CASCADE
);
CREATE TABLE PITCH_FACILITIES (
pNo NUMBER(3),
fName VARCHAR2(50),
PRIMARY KEY (pNo, fName),
FOREIGN KEY (pNo) REFERENCES PITCH(pNo) ON DELETE CASCADE,
FOREIGN KEY (fName) REFERENCES FACILITIES(fName)
);