-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreate table.sql
188 lines (158 loc) · 4.91 KB
/
create table.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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
USE group5_INFO430
GO
CREATE TABLE FACILITY_TYPE
(FacilityTypeID INT IDENTITY(1,1) PRIMARY KEY,
FacilityTypeName varchar(50) NOT NULL,
FacilityTypeDescr varchar(225) NOT NULL)
GO
CREATE TABLE FACILITY
(FacilityID INT IDENTITY(1,1) PRIMARY KEY,
FacilityTypeID INT FOREIGN KEY REFERENCES FACILITY_TYPE(FacilityTypeID) NOT NULL,
FacilityName varchar(50) NOT NULL,
FacilityDescr varchar(225) NOT NULL,
FacilityFee Numeric(8, 2) NOT NULL)
GO
CREATE TABLE SHIP_TYPE
(ShipTypeID INT IDENTITY(1,1) PRIMARY KEY,
ShipTypeName varchar(50) NOT NULL,
ShipTypeDescr varchar(225) NOT NULL)
GO
CREATE TABLE SHIP
(ShipID INT IDENTITY(1,1) PRIMARY KEY,
ShipTypeID INT FOREIGN KEY REFERENCES SHIP_TYPE(ShipTypeID) NOT NULL,
ShipName varchar(100) NOT NULL,
ShipDescr varchar(225) NOT NULL,
CabinCount Numeric(5,2) NOT NULL,
YearLaunch char(4) NOT NULL,
Tonnage Numeric(8,2) NOT NULL,
Capacity Numeric(8,2) NOT NULL)
GO
CREATE TABLE SHIP_FACILITY
(ShipFacilityID INT IDENTITY(1,1) PRIMARY KEY,
ShipID INT FOREIGN KEY REFERENCES SHIP(ShipID) NOT NULL,
FacilityID INT FOREIGN KEY REFERENCES FACILITY(FacilityID) NOT NULL)
GO
CREATE TABLE RATING
(
RatingID INT IDENTITY(1,1) PRIMARY KEY,
RatingNum INT NOT NULL,
RatingDesc VARCHAR(100) NOT NULL
)
GO
CREATE TABLE REVIEW
(
ReviewID INT IDENTITY(1,1) PRIMARY KEY,
BookingID INT FOREIGN KEY REFERENCES BOOKING(BookingID) NOT NULL,
RatingID INT FOREIGN KEY REFERENCES RATING(RatingID) NOT NULL,
ReviewTitle VARCHAR(40) NOT NULL,
ReviewContent VARCHAR(2000) NOT NULL,
ReviewDate DATE NOT NULL
)
GO
CREATE TABLE COUNTRY
(
CountryID INT IDENTITY(1,1) PRIMARY KEY,
CountryName VARCHAR(100) NOT NULL,
CountryDesc VARCHAR(500) NOT NULL
)
GO
CREATE TABLE CITY
(
CityID INT IDENTITY(1,1) PRIMARY KEY,
CountryID INT FOREIGN KEY REFERENCES COUNTRY(CountryID) NOT NULL,
CityName VARCHAR(100) NOT NULL
)
GO
CREATE TABLE PORT
(
PortID INT IDENTITY(1,1) PRIMARY KEY,
CityID INT FOREIGN KEY REFERENCES CITY(CityID) NOT NULL,
PortName VARCHAR(100) NOT NULL,
PortDescr VARCHAR(500) NOT NULL
)
GO
CREATE TABLE PASSENGER_TYPE
(PassengerTypeID INTEGER IDENTITY(1,1) primary key,
PassengerTypeName varchar(50) Not null,
PassengerTypeDescr varchar(500) null,
)
GO
CREATE TABLE MEMBERSHIP
(MembershipID INTEGER IDENTITY(1,1) primary key,
MembershipName varchar(50) not null,
MembershipDescr varchar(500) not null,
)
GO
CREATE TABLE PASSENGER
(PassengerID INTEGER IDENTITY(1,1) primary key,
PassengerTypeID INT NOT NULL FOREIGN KEY REFERENCES PASSENGER_TYPE(PassengerTypeID),
MembershipID INT NOT NULL FOREIGN KEY REFERENCES MEMBERSHIP(MembershipID),
PassengerFname varchar(50) not null,
PassengerLname varchar(50) not null,
PassengerDOB Date not null
)
GO
CREATE TABLE BOOKING
(BookingID INTEGER IDENTITY(1,1) primary key,
PassengerID INT NOT NULL FOREIGN KEY REFERENCES PASSENGER(PassengerID),
TripID INT NOT NULL FOREIGN KEY REFERENCES TRIP(TripID),
BookDateTime DateTime not null,
Fare decimal(10, 2) not null
)
GO
CREATE TABLE CABIN
(CabinID INTEGER IDENTITY(1,1) primary key,
ShipID INT NOT NULL FOREIGN KEY REFERENCES SHIP(ShipID),
CabinName varchar(50) not null,
CabinDescr varchar(500) null,
)
GO
CREATE TABLE BOOK_CABIN
(BookCabin INTEGER IDENTITY(1,1) primary key,
BookingID INT NOT NULL FOREIGN KEY REFERENCES BOOKING(BookingID),
CabinID INT NOT NULL FOREIGN KEY REFERENCES CABIN(CabinID),
)
GO
CREATE TABLE CREW
(CrewID INTEGER IDENTITY(1,1) PRIMARY KEY,
CrewFName varchar(50) not null,
CrewLName varchar(50) not null,
CrewDOB date)
GO
CREATE TABLE ROLES
(RoleID INTEGER IDENTITY(1,1) PRIMARY KEY,
RoleName varchar(50) not null,
RoleDescr varchar(100) not null)
GO
CREATE TABLE ROUTES
(RouteID INTEGER IDENTITY(1,1) PRIMARY KEY,
RouteName varchar(50) not null,
RouteDescr varchar(100) not null)
GO
CREATE TABLE TRIP
(TripID INTEGER IDENTITY(1,1) PRIMARY KEY,
RouteID INT NOT NULL FOREIGN KEY REFERENCES ROUTES(RouteID),
EmbarkPortID INT NOT NULL FOREIGN KEY REFERENCES PORT(PortID),
DisembarkPortID INT NOT NULL FOREIGN KEY REFERENCES PORT(PortID),
TripBeginDate DATE,
Duration varchar(50))
GO
CREATE TABLE TRIP_CREW
(TripCrewID INTEGER IDENTITY(1,1) PRIMARY KEY,
TripID INT NOT NULL FOREIGN KEY REFERENCES TRIP(TripID),
CrewID INT NOT NULL FOREIGN KEY REFERENCES CREW(CrewID),
RoleID INT NOT NULL FOREIGN KEY REFERENCES ROLES(RoleID))
GO
--change relationship between CABIN and SHIP to Many to many
ALTER TABLE CABIN
DROP CONSTRAINT FK__CABIN__ShipID__6A30C649
ALTER TABLE CABIN
DROP COLUMN ShipID
GO
SELECT *��from CABIN
--create bridge table between CAIBIN and SHIP
CREATE TABLE CABIN_SHIP
(CabinShipID INTEGER IDENTITY(1,1) PRIMARY KEY,
CabinID INT NOT NULL FOREIGN KEY REFERENCES CABIN(CabinID),
ShipID INT NOT NULL FOREIGN KEY REFERENCES SHIP(ShipID))
GO