-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdoctors.sql
More file actions
155 lines (123 loc) · 4.5 KB
/
doctors.sql
File metadata and controls
155 lines (123 loc) · 4.5 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
CREATE DATABASE IF NOT EXISTS `doctors` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `doctors`;
DROP TABLE IF EXISTS Cities;
CREATE TABLE Cities (
city_id int(11) NOT NULL AUTO_INCREMENT,
city_name Varchar(30) NOT NULL,
PRIMARY KEY (City_id)
);
DROP TABLE IF EXISTS Users;
CREATE TABLE Users (
user_id int(11) NOT NULL AUTO_INCREMENT,
first_name varchar(30) NOT NULL,
last_name varchar(30) NOT NULL,
address varchar(30) NOT NULL,
landline varchar(35) NULL,
mobile varchar(35) NOT NULL,
fax varchar(30) NULL,
email varchar(30) NOT NULL unique ,
pass varchar(30) NOT NULL,
city_id int(11) NOT NULL,
PRIMARY KEY (user_id),
FOREIGN KEY(city_id) references Cities(city_id)
);
DROP TABLE IF EXISTS Doctors;
CREATE TABLE Doctors (
doctor_id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL,
PRIMARY KEY (doctor_id),
FOREIGN KEY (user_id) references Users(user_id)
);
DROP TABLE IF EXISTS Specialties;
CREATE TABLE Specialties (
specialty_id int(11) NOT NULL AUTO_INCREMENT,
specialty_name Varchar(20) NOT NULL,
PRIMARY KEY(specialty_id)
);
DROP TABLE IF EXISTS Doctors_Specialties;
CREATE TABLE Doctors_Specialties (
doctor_id int(11) NOT NULL,
specialty_id int(11) NOT NULL,
FOREIGN KEY(doctor_id) references Doctors(doctor_id),
FOREIGN KEY(specialty_id) references Specialties(specialty_id)
);
DROP TABLE IF EXISTS Working_hours;
CREATE TABLE Working_hours (
working_hours_id int(11) NOT NULL AUTO_INCREMENT,
work_day int(11) NOT NULL,
from_hour int(11) NOT NULL,
to_hour int(11) NOT NULL,
doctor_id int(11) NOT NULL,
PRIMARY KEY(working_hours_id),
FOREIGN KEY(doctor_id) references Doctors(doctor_id)
);
DROP TABLE IF EXISTS Appointments;
CREATE TABLE Appointments (
appointment_id INT(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL,
doctor_id int(11) NOT NULL,
appointment_date_time DATETIME(6) NOT NULL,
medical_examination VARCHAR(200) NOT NULL,
user_comments VARCHAR(300),
rating int(11),
PRIMARY KEY(appointment_id),
FOREIGN KEY(user_id) references Users(user_id),
FOREIGN KEY(doctor_id) references Doctors(doctor_id)
);
/* INSERT A COUPLE OF SAMPLE CITIES -> we need this in order to create a user */
INSERT INTO Cities (city_name)
VALUES ('Αθήνα');
INSERT INTO Cities (city_name)
VALUES ('Θεσσαλονίκη');
INSERT INTO Cities (city_name)
VALUES ('Πάτρα');
INSERT INTO Cities (city_name)
VALUES ('Ιωάννινα');
INSERT INTO Cities (city_name)
VALUES ('Πειραιάς');
/* INSERT SOME SAMPLE SPECIALTIES */
INSERT INTO specialties (specialty_name) VALUES ('Καρδιολόγος');
INSERT INTO specialties (specialty_name) VALUES ('Παθολόγος');
INSERT INTO specialties (specialty_name) VALUES ('Ουρολόγος');
INSERT INTO specialties (specialty_name) VALUES ('Παιδίατρος');
/* INSERT A SAMPLE USER (CUSTOMER) */
INSERT INTO Users (address,city_id, email, first_name, last_name, mobile, pass)
VALUES ('Σπύρου Πάτση 59',
(SELECT city_id FROM Cities WHERE city_name='Αθήνα'),
'test@gmail.com',
'ΑΛΕΚΟΣ',
'ΠΑΠΑΔΟΠΟΥΛΟΣ',
'6972217143',
'1234');
/* INSERT SOME SAMPLE DOCTORS */
INSERT INTO Users (address,city_id, email, first_name, last_name, mobile, pass)
VALUES ('Ροδόπης 1',
(SELECT city_id FROM Cities WHERE city_name='Αθήνα'),
'dpetrakhs@hotmail.com',
'Δημήτρης',
'Πετράκης',
'6939904744',
'1234');
INSERT INTO Users (address,city_id, email, first_name, last_name, mobile, pass)
VALUES ('Τσαμαδού 25',
(SELECT city_id FROM Cities WHERE city_name='Πειραιάς'),
'vpanagopoulos@gmail.com',
'Βασίλης',
'Παναγόπουλος',
'6940899086',
'1234');
/* MAKE THE USERS AS DOCTORS BY RELATING RECORDS INTO DOCTORS TABLE */
INSERT INTO Doctors (user_id)
VALUES ((SELECT user_id FROM users WHERE email='dpetrakhs@hotmail.com'));
INSERT INTO Doctors (user_id)
VALUES ((SELECT user_id FROM users WHERE email='vpanagopoulos@gmail.com'));
INSERT INTO Doctors_Specialties (doctor_id, specialty_id)
VALUES (
(SELECT doctor_id FROM doctors INNER JOIN users ON doctors.user_id=users.user_id WHERE users.email='dpetrakhs@hotmail.com'),
(SELECT specialty_id FROM specialties WHERE specialty_name='Καρδιολόγος')
);
INSERT INTO Doctors_Specialties (doctor_id, specialty_id)
VALUES (
(SELECT doctor_id FROM doctors INNER JOIN users ON doctors.user_id=users.user_id WHERE users.email='vpanagopoulos@gmail.com'),
(SELECT specialty_id FROM specialties WHERE specialty_name='Παθολόγος')
);