-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmilestone5vXAMPP_CREATE.sql
174 lines (155 loc) · 4.44 KB
/
milestone5vXAMPP_CREATE.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
-- creating all the tables
CREATE TABLE Room (
RoomNo INTEGER,
Price INTEGER NOT NULL,
NoOfBeds INTEGER NOT NULL,
Kitchen CHAR(1) NOT NULL,
Patio CHAR(1) NOT NULL,
Handicap CHAR(1) NOT NULL,
PrivatePool CHAR(1) NOT NULL,
PRIMARY KEY(RoomNo)
);
CREATE TABLE Customer (
CustomerID INTEGER,
Name VARCHAR(50) NOT NULL,
PhoneNo BIGINT NOT NULL,
Email VARCHAR(50) NOT NULL,
Address VARCHAR(50) NOT NULL,
CreditCard BIGINT NOT NULL,
NoOfAdults INTEGER,
NoOfChildren INTEGER,
PRIMARY KEY(CustomerID)
);
CREATE TABLE Reservation_Makes (
ReservationNo INTEGER,
RoomNo INTEGER NOT NULL,
CustomerID INTEGER NOT NULL,
CheckInDate DATE NOT NULL,
CheckOutDate DATE NOT NULL,
PRIMARY KEY(ReservationNo),
FOREIGN KEY(RoomNo) REFERENCES Room(RoomNo)
ON DELETE CASCADE,
FOREIGN KEY(CustomerID) REFERENCES Customer(CustomerID)
ON DELETE CASCADE
);
CREATE TABLE EmergencyContact(
EmergencyName VARCHAR(50),
CustomerID INTEGER UNIQUE,
PhoneNo BIGINT NOT NULL,
RelationToCustomer VARCHAR(20),
PRIMARY KEY(EmergencyName, CustomerID),
FOREIGN KEY(CustomerID) REFERENCES Customer(CustomerID)
ON DELETE CASCADE
);
CREATE TABLE Salaries(
Position VARCHAR(20),
Wage REAL NOT NULL,
PRIMARY KEY(Position)
);
CREATE TABLE Facility(
FacilityName VARCHAR(30),
Capacity INTEGER,
OpeningHour INTEGER,
ClosingHour INTEGER,
PRIMARY KEY(FacilityName)
);
CREATE TABLE Employee_WorksAt(
EmployeeID INTEGER,
FacilityName VARCHAR(50),
Name VARCHAR(50),
Position VARCHAR(30),
PRIMARY KEY(EmployeeID),
FOREIGN KEY(Position) REFERENCES Salaries(Position)
ON DELETE CASCADE,
FOREIGN KEY(FacilityName) REFERENCES Facility(FacilityName)
);
CREATE TABLE ShuttleSchedule(
Destination VARCHAR(50),
DepartureTime INTEGER NOT NULL,
ArrivalTime INTEGER NOT NULL,
PRIMARY KEY(Destination)
);
CREATE TABLE Vehicle(
VehicleType VARCHAR(25),
Capacity INTEGER NOT NULL,
PRIMARY KEY(VehicleType)
);
CREATE TABLE Transportation(
TransportationID INTEGER,
VehicleType VARCHAR(25),
Destination VARCHAR(30),
TDate DATE,
PRIMARY KEY(TransportationID),
FOREIGN KEY (VehicleType) REFERENCES Vehicle(VehicleType)
ON DELETE CASCADE,
FOREIGN KEY (Destination) REFERENCES ShuttleSchedule(Destination)
ON DELETE CASCADE
);
CREATE TABLE Buys(
CustomerID INTEGER,
TransportationID INTEGER,
TicketID INTEGER UNIQUE NOT NULL,
PRIMARY KEY(CustomerID, TransportationID),
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
ON DELETE CASCADE,
FOREIGN KEY (TransportationID) REFERENCES Transportation(TransportationID)
ON DELETE CASCADE
);
CREATE TABLE HousekeepingAndMaintenance(
EmployeeID INTEGER,
AssignedFloor INTEGER,
PRIMARY KEY(EmployeeID),
FOREIGN KEY(EmployeeID) REFERENCES Employee_WorksAt(EmployeeID)
ON DELETE CASCADE
);
CREATE TABLE Maintenance_Record(
CaseNo INTEGER,
EmployeeID INTEGER NOT NULL,
MDate DATE,
Completed CHAR(1) NOT NULL,
PRIMARY KEY(CaseNo),
FOREIGN KEY(EmployeeID) REFERENCES Employee_WorksAt(EmployeeID)
ON DELETE CASCADE
);
CREATE TABLE Equipment(
EquipmentID INTEGER,
FacilityName VARCHAR(50) NOT NULL,
CurrentlyRented CHAR(1) NOT NULL,
Type VARCHAR(15) NOT NULL,
PRIMARY KEY(EquipmentID),
FOREIGN KEY(FacilityName) REFERENCES Facility(FacilityName)
ON DELETE CASCADE
);
CREATE TABLE Instructor_Instructs(
EmployeeID INTEGER,
YearsOfExperience INTEGER,
PRIMARY KEY(EmployeeID),
FOREIGN KEY(EmployeeID) REFERENCES Employee_WorksAt(EmployeeID)
ON DELETE CASCADE
);
CREATE TABLE Lifeguard_Guards(
EmployeeID INTEGER,
StationNo INTEGER NOT NULL UNIQUE,
PRIMARY KEY(EmployeeID),
FOREIGN KEY(EmployeeID) REFERENCES Employee_WorksAt(EmployeeID)
ON DELETE CASCADE
);
CREATE TABLE Rents(
CustomerID INTEGER,
EquipmentID INTEGER,
PRIMARY KEY(CustomerID, EquipmentID),
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
ON DELETE CASCADE,
FOREIGN KEY (EquipmentID) REFERENCES Equipment(EquipmentID)
ON DELETE CASCADE
);
CREATE TABLE Provides(
EmployeeID INTEGER,
TransportationID INTEGER,
PRIMARY KEY(EmployeeID, TransportationID),
FOREIGN KEY (EmployeeID) REFERENCES Employee_WorksAt(EmployeeID)
ON DELETE CASCADE,
FOREIGN KEY (TransportationID) REFERENCES Transportation(TransportationID)
ON DELETE CASCADE
);
commit;