-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreation on sql server.sql
More file actions
339 lines (261 loc) · 12 KB
/
creation on sql server.sql
File metadata and controls
339 lines (261 loc) · 12 KB
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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
CREATE TABLE Branches (
Branch_ID int NOT NULL ,
Latitude int NOT NULL ,
Longitude int NOT NULL ,
CONSTRAINT Pk_Branches_Branch_ID PRIMARY KEY ( Branch_ID )
) ;
CREATE TABLE Buses (
Bus_id int NOT NULL ,
Bus_brand varchar(50) NOT NULL ,
Bus_Model varchar(15) NOT NULL ,
Bus_capacity int NOT NULL ,
Bus_license int NOT NULL UNIQUE ,
license_exp_date date NOT NULL ,
CONSTRAINT Pk_Buses_Bus_id PRIMARY KEY ( Bus_id )
) ;
CREATE TABLE Discount (
Discount_id int NOT NULL ,
Discount_value varchar(20) ,
Expire_date date ,
CONSTRAINT Pk_Discount_Discount_id PRIMARY KEY ( Discount_id )
) ;
CREATE TABLE Insurance_standard (
Insurance_standard_id int NOT NULL ,
Position varchar(50) ,
Insurance_amount float ,
CONSTRAINT Pk_Inturance_standard_Insurance_standard_id PRIMARY KEY ( Insurance_standard_id )
) ;
CREATE TABLE Payment_Method (
pay_method_id int NOT NULL ,
method_name varchar(20) ,
payment_info varchar(1000) ,
CONSTRAINT Pk_Payment_Method_pay_method_id PRIMARY KEY ( pay_method_id )
) ;
CREATE TABLE Price_plane (
Price_id int NOT NULL ,
price float ,
class varchar(50) ,
bus_ID int NOT NULL ,
CONSTRAINT Pk_Price_plane_Price_id PRIMARY KEY ( Price_id ),
CONSTRAINT fk_price_plane_buses FOREIGN KEY ( bus_ID ) REFERENCES Buses( Bus_id )
) ;
CREATE TABLE Transactions (
Transaction_id int NOT NULL ,
type varchar(20) NOT NULL CHECK (type in ('income','outcome')) ,
Value float NOT NULL ,
Description varchar(1000) ,
CONSTRAINT Pk_Transactions_Transaction_id PRIMARY KEY ( Transaction_id )
) ;
CREATE TABLE customer (
customer_id int NOT NULL ,
Cust_first_name varchar(50) ,
cust_last_name varchar(50) ,
phone_number varchar(100) ,
address varchar(100) ,
social_state varchar(20) ,
Email varchar(100) ,
Birthdate date ,
CONSTRAINT Pk_customer_customer_id PRIMARY KEY ( customer_id )
) ;
CREATE TABLE feedback (
feedback_id int NOT NULL ,
feedback_content varchar(100) ,
customer_id int ,
CONSTRAINT Pk_feedback_feedback_id PRIMARY KEY ( feedback_id ),
CONSTRAINT fk_feedback_customer FOREIGN KEY ( customer_id ) REFERENCES customer( customer_id )
) ;
CREATE TABLE payRoll (
pay_id int NOT NULL ,
pay_amount float ,
Transaction_id int ,
CONSTRAINT Pk_payRoll_pay_id PRIMARY KEY ( pay_id ),
CONSTRAINT fk_payroll_transactions FOREIGN KEY ( Transaction_id ) REFERENCES Transactions( Transaction_id )
) ;
CREATE TABLE penalties (
penalty_id int NOT NULL ,
penalty_amount float ,
penalty_date date ,
pay_id int ,
penalty_description varchar(1000) ,
CONSTRAINT Pk_penalties_penalty_id PRIMARY KEY ( penalty_id ),
CONSTRAINT fk_penalties_payroll FOREIGN KEY ( pay_id ) REFERENCES payRoll( pay_id )
) ;
CREATE TABLE schedule (
schedule_id int NOT NULL ,
Date_time_start datetime ,
Date_time_end datetime ,
bus_id int ,
CONSTRAINT Pk_schedule_schedule_id PRIMARY KEY ( schedule_id ),
CONSTRAINT bus_id FOREIGN KEY ( bus_id ) REFERENCES Buses( Bus_id )
) ;
CREATE TABLE Buses_gas_money (
Bus_id int NOT NULL ,
Transaction_ID int NOT NULL ,
CONSTRAINT Pk_Buses_Bus_id_0 PRIMARY KEY ( Bus_id ) ,
CONSTRAINT fk_buses_gas_money FOREIGN KEY ( Transaction_ID ) REFERENCES Transactions( Transaction_id ),
CONSTRAINT fk_buses_gas_money_buses FOREIGN KEY ( Bus_id ) REFERENCES Buses( Bus_id )
) ;
CREATE TABLE Ranks (
Rank_id int NOT NULL ,
rank_name varchar(50) ,
level_limit int ,
customer_id int ,
CONSTRAINT Pk_Ranks_Rank_id PRIMARY KEY ( Rank_id ),
CONSTRAINT fk_ranks_customer FOREIGN KEY ( customer_id ) REFERENCES customer( customer_id )
) ;
CREATE TABLE line (
Line_ID int NOT NULL ,
Estimated_time time ,
Distance float ,
schedule_id int ,
price_plane_id int ,
CONSTRAINT Pk_lines_Line_ID PRIMARY KEY ( Line_ID ),
CONSTRAINT fk_lines_schedule FOREIGN KEY ( schedule_id ) REFERENCES schedule( schedule_id ),
CONSTRAINT fk_lines_price_plane FOREIGN KEY ( price_plane_id ) REFERENCES Price_plane( Price_id )
) ;
CREATE TABLE lines_Branches (
line_id int NOT NULL ,
Branch_id int NOT NULL ,
CONSTRAINT _1 PRIMARY KEY ( line_id, Branch_id ),
CONSTRAINT Idx_lines_Branches_Branches_id UNIQUE ( Branch_id ) ,
CONSTRAINT fk_lines_branches_lines FOREIGN KEY ( line_id ) REFERENCES line( Line_ID ),
CONSTRAINT fk_lines_branches_branches FOREIGN KEY ( Branch_id ) REFERENCES Branches( Branch_ID )
) ;
CREATE TABLE Discount_ranks (
Rank_id int NOT NULL ,
Discount_id int NOT NULL ,
CONSTRAINT _2 PRIMARY KEY ( Rank_id, Discount_id ) ,
CONSTRAINT fk_discount_ranks_discount FOREIGN KEY ( Discount_id ) REFERENCES Discount( Discount_id ),
CONSTRAINT fk_discount_ranks_ranks FOREIGN KEY ( Rank_id ) REFERENCES Ranks( Rank_id )
) ;
CREATE TABLE Medical_care (
Medical_id int NOT NULL ,
balance float ,
Transaction_id int ,
Insurance_standard_id int ,
CONSTRAINT Pk_Medical_care_Medical_id PRIMARY KEY ( Medical_id ),
CONSTRAINT fk_medical_care_transactions FOREIGN KEY ( Transaction_id ) REFERENCES Transactions( Transaction_id ) ,
CONSTRAINT fk_medical_care FOREIGN KEY ( Insurance_standard_id ) REFERENCES Insurance_standard( Insurance_standard_id )
) ;
CREATE TABLE Drivers (
Driver_id int NOT NULL ,
First_name varchar(50) ,
last_name varchar(50) ,
phone_number varchar(100) ,
year_of_experince int ,
Birthday date ,
social_state varchar(30) ,
Ssn int ,
license_number int ,
pay_id int ,
Medical_id int ,
CONSTRAINT Pk_Drivers_Driver_id PRIMARY KEY ( Driver_id ),
CONSTRAINT fk_drivers_payroll FOREIGN KEY ( pay_id ) REFERENCES payRoll( pay_id ),
CONSTRAINT fk_drivers_medical_care FOREIGN KEY ( Medical_id ) REFERENCES Medical_care( Medical_id )
) ;
CREATE TABLE Drivers_Rating (
Rating_ID int NOT NULL ,
Customer_ID int NOT NULL ,
Driver_ID int NOT NULL ,
CONSTRAINT Pk_Drivers_Rating_Rating_ID PRIMARY KEY ( Rating_ID ),
CONSTRAINT fk_drivers_rating_customer FOREIGN KEY ( Customer_ID ) REFERENCES customer( customer_id ),
CONSTRAINT fk_drivers_rating_drivers FOREIGN KEY ( Driver_ID ) REFERENCES Drivers( Driver_id )
) ;
CREATE TABLE employees (
Emp_id int NOT NULL ,
emp_first_name varchar(50) ,
emp_last_name varchar(50) ,
phone_number varchar(100) ,
email varchar(100) ,
position varchar(50) ,
birthday date ,
ssn int ,
pay_id int ,
medical_id int ,
CONSTRAINT Pk_employees_Emp_id PRIMARY KEY ( Emp_id ),
CONSTRAINT fk_employees_payroll FOREIGN KEY ( pay_id ) REFERENCES payRoll( pay_id ),
CONSTRAINT fk_employees_medical_care FOREIGN KEY ( medical_id ) REFERENCES Medical_care( Medical_id )
) ;
CREATE TABLE Driver_Penalty_JN (
Driver_ID int NOT NULL ,
Penalty_ID int NOT NULL ,
CONSTRAINT Pk_Buses_Bus_id_2 PRIMARY KEY ( Driver_ID ),
CONSTRAINT fk_driver_penalty_jn_0_drivers FOREIGN KEY ( Driver_ID ) REFERENCES Drivers( Driver_id ),
CONSTRAINT fk_driver_penalty_jn_penalties FOREIGN KEY ( Penalty_ID ) REFERENCES penalties( penalty_id )
) ;
CREATE TABLE Bonuses (
bonus_id int NOT NULL ,
bonus_amount float ,
bonus_date date ,
pay_id int ,
bouns_description varchar(1000) ,
CONSTRAINT Pk_Bounnses_bouns_id PRIMARY KEY ( bonus_id ) ,
CONSTRAINT fk_bounnses_payroll FOREIGN KEY ( pay_id ) REFERENCES payRoll( pay_id )
) ;
CREATE TABLE Driver_Bonus_JN (
Driver_ID int NOT NULL ,
Bonus_ID int NOT NULL ,
CONSTRAINT Pk_Buses_Bus_id_1 PRIMARY KEY ( Driver_ID ) ,
CONSTRAINT fk_driver_penalty_jn_bonuses FOREIGN KEY ( Bonus_ID ) REFERENCES Bonuses( bonus_id ) ,
CONSTRAINT fk_driver_penalty_jn_drivers FOREIGN KEY ( Driver_ID ) REFERENCES Drivers( Driver_id )
) ;
CREATE TABLE Employee_Bonus_JN (
Employee_ID int NOT NULL ,
Bonus_ID int NOT NULL ,
CONSTRAINT Pk_Buses_Bus_id_3 PRIMARY KEY ( Employee_ID ),
CONSTRAINT fk_employee_bonus_jn_employees FOREIGN KEY ( Employee_ID ) REFERENCES employees( Emp_id ),
CONSTRAINT fk_employee_bonus_jn_bonuses FOREIGN KEY ( Bonus_ID ) REFERENCES Bonuses( bonus_id )
) ;
CREATE TABLE Employee_Penalty_JN (
Employee_ID int NOT NULL ,
Penalty_ID int NOT NULL ,
CONSTRAINT Pk_Buses_Bus_id_4 PRIMARY KEY ( Employee_ID ),
CONSTRAINT fk_employee_penalty_jn FOREIGN KEY ( Employee_ID ) REFERENCES employees( Emp_id ),
CONSTRAINT Penalty_ID FOREIGN KEY ( Penalty_ID ) REFERENCES penalties( penalty_id )
) ;
CREATE TABLE Reservation (
Reservation_id int NOT NULL ,
seat_no_booked int ,
Driver_id int ,
schedule_id int ,
payment_method_id int ,
feedback_id int ,
customer_id int ,
Transaction_id int ,
CONSTRAINT Pk_Reservation_Reservation_id PRIMARY KEY ( Reservation_id ),
CONSTRAINT fk_reservation_drivers FOREIGN KEY ( Driver_id ) REFERENCES Drivers( Driver_id ),
CONSTRAINT fk_reservation_schedule FOREIGN KEY ( schedule_id ) REFERENCES schedule( schedule_id ),
CONSTRAINT fk_reservation_payment_method FOREIGN KEY ( payment_method_id ) REFERENCES Payment_Method( pay_method_id ) ,
CONSTRAINT fk_reservation_feedback FOREIGN KEY ( feedback_id ) REFERENCES feedback( feedback_id ),
CONSTRAINT fk_reservation_transactions FOREIGN KEY ( Transaction_id ) REFERENCES Transactions( Transaction_id ) ,
CONSTRAINT fk_reservation_customer FOREIGN KEY ( customer_id ) REFERENCES customer( customer_id )
);
CREATE TABLE Actual_Trip (
Actual_Trip_ID int NOT NULL ,
Reservation_ID int NOT NULL ,
Actual_End_Time datetime NOT NULL ,
CONSTRAINT Pk_Actual_Trip_Actual_Trip_ID PRIMARY KEY ( Actual_Trip_ID ),
CONSTRAINT fk_actual_trip_reservation FOREIGN KEY ( Reservation_ID ) REFERENCES Reservation( Reservation_id )
) ;
CREATE TABLE Special_order (
sp_order_id int NOT NULL ,
starting_point varchar(50) ,
Ending_point varchar(50) ,
Estimated_time time ,
price float ,
customer_id int ,
Bus_id int ,
Driver_id int ,
CONSTRAINT Pk_Special_order_sp_order_id PRIMARY KEY ( sp_order_id ),
CONSTRAINT fk_special_order_buses FOREIGN KEY ( Bus_id ) REFERENCES Buses( Bus_id ),
CONSTRAINT fk_special_order_customer FOREIGN KEY ( customer_id ) REFERENCES customer( customer_id ),
CONSTRAINT fk_special_order_drivers FOREIGN KEY ( Driver_id ) REFERENCES Drivers( Driver_id )
) ;
CREATE TABLE Actual_Special_Trip (
Actual_Special_Trip_ID int NOT NULL ,
Special_Order_ID int NOT NULL ,
Actual_Start_Time datetime ,
Actual_Ending_Time datetime ,
CONSTRAINT Pk_Actual_Special_Trip_Actual_Special_Trip_ID PRIMARY KEY ( Actual_Special_Trip_ID ),
CONSTRAINT fk_actual_special_trip FOREIGN KEY ( Special_Order_ID ) REFERENCES Special_order( sp_order_id )
) ;