| 1 | DROP TABLE IF EXISTS student CASCADE;
|
|---|
| 2 | DROP TABLE IF EXISTS task CASCADE;
|
|---|
| 3 | DROP TABLE IF EXISTS feedback CASCADE;
|
|---|
| 4 | DROP TABLE IF EXISTS school_year CASCADE;
|
|---|
| 5 | DROP TABLE IF EXISTS term CASCADE;
|
|---|
| 6 | DROP TABLE IF EXISTS subject_at_term CASCADE;
|
|---|
| 7 | DROP TABLE IF EXISTS calendar_event CASCADE;
|
|---|
| 8 | DROP TABLE IF EXISTS repeating_event CASCADE;
|
|---|
| 9 | DROP TABLE IF EXISTS non_repeating_event CASCADE;
|
|---|
| 10 | DROP TABLE IF EXISTS e_mail CASCADE;
|
|---|
| 11 | DROP TABLE IF EXISTS reminder CASCADE;
|
|---|
| 12 | DROP TABLE IF EXISTS place CASCADE;
|
|---|
| 13 | DROP TABLE IF EXISTS dashboard CASCADE;
|
|---|
| 14 | DROP TABLE IF EXISTS notes CASCADE;
|
|---|
| 15 | DROP TABLE IF EXISTS professor CASCADE;
|
|---|
| 16 | DROP TABLE IF EXISTS subject_book CASCADE;
|
|---|
| 17 | DROP TABLE IF EXISTS author CASCADE;
|
|---|
| 18 | DROP TABLE IF EXISTS chapter CASCADE;
|
|---|
| 19 | DROP TABLE IF EXISTS has_taken_a_subject CASCADE;
|
|---|
| 20 | DROP TABLE IF EXISTS holds_subject CASCADE;
|
|---|
| 21 | DROP TABLE IF EXISTS holds_event CASCADE;
|
|---|
| 22 | DROP TABLE IF EXISTS happens_at_place CASCADE;
|
|---|
| 23 | DROP TABLE IF EXISTS term_has_subject CASCADE;
|
|---|
| 24 | DROP TABLE IF EXISTS calendar_task CASCADE;
|
|---|
| 25 | DROP TABLE IF EXISTS recommended_book CASCADE;
|
|---|
| 26 | DROP TABLE IF EXISTS recommended_chapter CASCADE;
|
|---|
| 27 | DROP TABLE IF EXISTS has_consultations CASCADE;
|
|---|
| 28 | DROP TABLE IF EXISTS year_has_subject CASCADE;
|
|---|
| 29 | DROP TABLE IF EXISTS student_dashboard CASCADE;
|
|---|
| 30 | DROP TABLE IF EXISTS studied_in_school_year CASCADE;
|
|---|
| 31 | DROP TABLE IF EXISTS dashboard_notes CASCADE;
|
|---|
| 32 | DROP TABLE IF EXISTS book_modules CASCADE;
|
|---|
| 33 | DROP TABLE IF EXISTS contains_terms CASCADE;
|
|---|
| 34 | DROP TABLE IF EXISTS has_e_mail CASCADE;
|
|---|
| 35 | DROP TABLE IF EXISTS dashboard_event CASCADE;
|
|---|
| 36 | DROP TABLE IF EXISTS subject_event CASCADE;
|
|---|
| 37 | DROP TABLE IF EXISTS creates_task CASCADE;
|
|---|
| 38 | DROP TABLE IF EXISTS student_event CASCADE;
|
|---|
| 39 | DROP TABLE IF EXISTS student_task CASCADE;
|
|---|
| 40 | DROP TABLE IF EXISTS book_author CASCADE;
|
|---|
| 41 | DROP TABLE IF EXISTS gives_feedback CASCADE;
|
|---|
| 42 | DROP TABLE IF EXISTS event_reminder CASCADE;
|
|---|
| 43 | DROP TABLE IF EXISTS dashboard_task CASCADE;
|
|---|
| 44 |
|
|---|
| 45 | CREATE TABLE student (
|
|---|
| 46 | student_id INT PRIMARY KEY,
|
|---|
| 47 | username VARCHAR(255),
|
|---|
| 48 | s_first_name VARCHAR(255),
|
|---|
| 49 | s_last_name VARCHAR(255),
|
|---|
| 50 | s_password VARCHAR(255)
|
|---|
| 51 | );
|
|---|
| 52 |
|
|---|
| 53 | CREATE TABLE task (
|
|---|
| 54 | task_id INT PRIMARY KEY,
|
|---|
| 55 | task_name VARCHAR(255),
|
|---|
| 56 | task_description TEXT,
|
|---|
| 57 | task_priority INT,
|
|---|
| 58 | is_done BOOLEAN
|
|---|
| 59 | );
|
|---|
| 60 |
|
|---|
| 61 | CREATE TABLE feedback (
|
|---|
| 62 | fb_id INT PRIMARY KEY,
|
|---|
| 63 | fb_date DATE,
|
|---|
| 64 | fb_title VARCHAR(255),
|
|---|
| 65 | fb_description TEXT,
|
|---|
| 66 | fb_rating INT
|
|---|
| 67 | );
|
|---|
| 68 |
|
|---|
| 69 | CREATE TABLE school_year (
|
|---|
| 70 | student_id INT,
|
|---|
| 71 | starting_year INT,
|
|---|
| 72 | finishing_year INT,
|
|---|
| 73 | PRIMARY KEY (student_id, starting_year, finishing_year),
|
|---|
| 74 | CONSTRAINT fk_school_year_student FOREIGN KEY (student_id) REFERENCES student(student_id)
|
|---|
| 75 | );
|
|---|
| 76 |
|
|---|
| 77 | CREATE TABLE term (
|
|---|
| 78 | student_id INT,
|
|---|
| 79 | starting_year INT,
|
|---|
| 80 | finishing_year INT,
|
|---|
| 81 | term_type VARCHAR(50),
|
|---|
| 82 | term_start_date DATE,
|
|---|
| 83 | term_end_date DATE,
|
|---|
| 84 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type),
|
|---|
| 85 | CONSTRAINT fk_term_school_year FOREIGN KEY (student_id, starting_year, finishing_year) REFERENCES school_year(student_id, starting_year, finishing_year)
|
|---|
| 86 | );
|
|---|
| 87 |
|
|---|
| 88 | CREATE TABLE subject_at_term (
|
|---|
| 89 | student_id INT,
|
|---|
| 90 | starting_year INT,
|
|---|
| 91 | finishing_year INT,
|
|---|
| 92 | term_type VARCHAR(50),
|
|---|
| 93 | term_subject_id INT,
|
|---|
| 94 | subject_name VARCHAR(255),
|
|---|
| 95 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 96 | CONSTRAINT fk_subject_at_term_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type) REFERENCES term(student_id, starting_year, finishing_year, term_type)
|
|---|
| 97 | );
|
|---|
| 98 |
|
|---|
| 99 | CREATE TABLE calendar_event (
|
|---|
| 100 | calendar_event_id INT PRIMARY KEY,
|
|---|
| 101 | event_name VARCHAR(255),
|
|---|
| 102 | event_type VARCHAR(50),
|
|---|
| 103 | event_description TEXT,
|
|---|
| 104 | event_start_time TIME,
|
|---|
| 105 | event_end_time TIME
|
|---|
| 106 | );
|
|---|
| 107 |
|
|---|
| 108 | CREATE TABLE repeating_event (
|
|---|
| 109 | calendar_event_id INT,
|
|---|
| 110 | event_week_day VARCHAR(20),
|
|---|
| 111 | repeats_every_n_weeks INT,
|
|---|
| 112 | starting_date DATE,
|
|---|
| 113 | ending_date DATE,
|
|---|
| 114 | PRIMARY KEY (calendar_event_id),
|
|---|
| 115 | CONSTRAINT fk_repeating_event_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id)
|
|---|
| 116 | );
|
|---|
| 117 |
|
|---|
| 118 | CREATE TABLE non_repeating_event (
|
|---|
| 119 | calendar_event_id INT,
|
|---|
| 120 | event_date DATE,
|
|---|
| 121 | PRIMARY KEY (calendar_event_id),
|
|---|
| 122 | CONSTRAINT fk_non_repeating_event_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id)
|
|---|
| 123 | );
|
|---|
| 124 |
|
|---|
| 125 | CREATE TABLE e_mail (
|
|---|
| 126 | student_id INT,
|
|---|
| 127 | e_mail_id INT PRIMARY KEY,
|
|---|
| 128 | e_mail_address VARCHAR(255),
|
|---|
| 129 | CONSTRAINT fk_email_student FOREIGN KEY (student_id) REFERENCES student(student_id)
|
|---|
| 130 | );
|
|---|
| 131 |
|
|---|
| 132 | CREATE TABLE reminder (
|
|---|
| 133 | calendar_event_id INT,
|
|---|
| 134 | r_id INT PRIMARY KEY,
|
|---|
| 135 | minutes_before_event INT,
|
|---|
| 136 | r_flag BOOLEAN,
|
|---|
| 137 | CONSTRAINT fk_reminder_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id)
|
|---|
| 138 | );
|
|---|
| 139 |
|
|---|
| 140 | CREATE TABLE place (
|
|---|
| 141 | place_id INT PRIMARY KEY,
|
|---|
| 142 | building_name VARCHAR(255),
|
|---|
| 143 | room_name VARCHAR(255)
|
|---|
| 144 | );
|
|---|
| 145 |
|
|---|
| 146 |
|
|---|
| 147 | CREATE TABLE dashboard (
|
|---|
| 148 | student_id INT,
|
|---|
| 149 | dashboard_id INT,
|
|---|
| 150 | dashboard_date DATE,
|
|---|
| 151 | PRIMARY KEY (dashboard_id),
|
|---|
| 152 | UNIQUE (student_id, dashboard_id),
|
|---|
| 153 | CONSTRAINT fk_dashboard_student FOREIGN KEY (student_id) REFERENCES student(student_id)
|
|---|
| 154 | );
|
|---|
| 155 |
|
|---|
| 156 | CREATE TABLE notes (
|
|---|
| 157 | student_id INT,
|
|---|
| 158 | dashboard_id INT,
|
|---|
| 159 | note_id INT PRIMARY KEY,
|
|---|
| 160 | notes_date DATE,
|
|---|
| 161 | note_text TEXT,
|
|---|
| 162 | CONSTRAINT fk_notes_dashboard FOREIGN KEY (student_id, dashboard_id) REFERENCES dashboard(student_id, dashboard_id)
|
|---|
| 163 | );
|
|---|
| 164 |
|
|---|
| 165 | CREATE TABLE professor (
|
|---|
| 166 | professor_id INT PRIMARY KEY,
|
|---|
| 167 | p_first_name VARCHAR(255),
|
|---|
| 168 | p_last_name VARCHAR(255),
|
|---|
| 169 | p_role VARCHAR(50),
|
|---|
| 170 | p_email VARCHAR(255)
|
|---|
| 171 | );
|
|---|
| 172 |
|
|---|
| 173 | CREATE TABLE subject_book (
|
|---|
| 174 | book_id INT PRIMARY KEY,
|
|---|
| 175 | book_title VARCHAR(255),
|
|---|
| 176 | b_year_of_publishment INT,
|
|---|
| 177 | book_edition VARCHAR(50)
|
|---|
| 178 | );
|
|---|
| 179 |
|
|---|
| 180 | CREATE TABLE author (
|
|---|
| 181 | author_id INT PRIMARY KEY,
|
|---|
| 182 | author_name VARCHAR(255),
|
|---|
| 183 | a_short_biography TEXT
|
|---|
| 184 | );
|
|---|
| 185 |
|
|---|
| 186 | CREATE TABLE chapter (
|
|---|
| 187 | book_id INT,
|
|---|
| 188 | chapter_number INT,
|
|---|
| 189 | chapter_title VARCHAR(255),
|
|---|
| 190 | PRIMARY KEY (book_id, chapter_number),
|
|---|
| 191 | CONSTRAINT fk_chapter_subject_book FOREIGN KEY (book_id) REFERENCES subject_book(book_id)
|
|---|
| 192 | );
|
|---|
| 193 |
|
|---|
| 194 | CREATE TABLE has_taken_a_subject (
|
|---|
| 195 | student_id INT,
|
|---|
| 196 | starting_year INT,
|
|---|
| 197 | finishing_year INT,
|
|---|
| 198 | term_type VARCHAR(50),
|
|---|
| 199 | term_subject_id INT,
|
|---|
| 200 | student_id_ref INT,
|
|---|
| 201 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 202 | CONSTRAINT fk_taken_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 203 | CONSTRAINT fk_taken_student FOREIGN KEY (student_id_ref) REFERENCES student(student_id)
|
|---|
| 204 | );
|
|---|
| 205 |
|
|---|
| 206 | CREATE TABLE holds_subject (
|
|---|
| 207 | student_id INT,
|
|---|
| 208 | starting_year INT,
|
|---|
| 209 | finishing_year INT,
|
|---|
| 210 | term_type VARCHAR(50),
|
|---|
| 211 | term_subject_id INT,
|
|---|
| 212 | professor_id INT,
|
|---|
| 213 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 214 | CONSTRAINT fk_holds_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 215 | CONSTRAINT fk_holds_professor FOREIGN KEY (professor_id) REFERENCES professor(professor_id)
|
|---|
| 216 | );
|
|---|
| 217 |
|
|---|
| 218 | CREATE TABLE holds_event (
|
|---|
| 219 | calendar_event_id INT,
|
|---|
| 220 | professor_id INT,
|
|---|
| 221 | PRIMARY KEY (calendar_event_id),
|
|---|
| 222 | CONSTRAINT fk_holds_event_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id),
|
|---|
| 223 | CONSTRAINT fk_holds_event_professor FOREIGN KEY (professor_id) REFERENCES professor(professor_id)
|
|---|
| 224 | );
|
|---|
| 225 |
|
|---|
| 226 | CREATE TABLE happens_at_place (
|
|---|
| 227 | calendar_event_id INT,
|
|---|
| 228 | place_id INT,
|
|---|
| 229 | PRIMARY KEY (calendar_event_id),
|
|---|
| 230 | CONSTRAINT fk_happens_at_place_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id),
|
|---|
| 231 | CONSTRAINT fk_happens_at_place_place FOREIGN KEY (place_id) REFERENCES place(place_id)
|
|---|
| 232 | );
|
|---|
| 233 |
|
|---|
| 234 | CREATE TABLE term_has_subject (
|
|---|
| 235 | student_id INT,
|
|---|
| 236 | starting_year INT,
|
|---|
| 237 | finishing_year INT,
|
|---|
| 238 | term_type VARCHAR(50),
|
|---|
| 239 | term_subject_id INT,
|
|---|
| 240 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 241 | CONSTRAINT fk_term_has_subject_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id)
|
|---|
| 242 | );
|
|---|
| 243 |
|
|---|
| 244 | CREATE TABLE dashboard_task (
|
|---|
| 245 | task_id INT,
|
|---|
| 246 | student_id INT,
|
|---|
| 247 | dashboard_id INT,
|
|---|
| 248 | PRIMARY KEY (task_id),
|
|---|
| 249 | CONSTRAINT fk_dashboard_task_task FOREIGN KEY (task_id) REFERENCES task(task_id),
|
|---|
| 250 | CONSTRAINT fk_dashboard_task_dashboard FOREIGN KEY (student_id, dashboard_id) REFERENCES dashboard(student_id, dashboard_id)
|
|---|
| 251 | );
|
|---|
| 252 |
|
|---|
| 253 | CREATE TABLE gives_feedback (
|
|---|
| 254 | fb_id INT,
|
|---|
| 255 | student_id INT,
|
|---|
| 256 | PRIMARY KEY (fb_id),
|
|---|
| 257 | CONSTRAINT fk_gives_feedback_feedback FOREIGN KEY (fb_id) REFERENCES feedback(fb_id),
|
|---|
| 258 | CONSTRAINT fk_gives_feedback_student FOREIGN KEY (student_id) REFERENCES student(student_id)
|
|---|
| 259 | );
|
|---|
| 260 |
|
|---|
| 261 | CREATE TABLE recommended_book(
|
|---|
| 262 | student_id INT,
|
|---|
| 263 | starting_year INT,
|
|---|
| 264 | finishing_year INT,
|
|---|
| 265 | term_type VARCHAR(50),
|
|---|
| 266 | term_subject_id INT,
|
|---|
| 267 | book_id INT,
|
|---|
| 268 | fb_id INT, -- Added fb_id here
|
|---|
| 269 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 270 | CONSTRAINT fk_recommended_book_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 271 | CONSTRAINT fk_recommended_book_subject_book FOREIGN KEY (book_id) REFERENCES subject_book(book_id),
|
|---|
| 272 | CONSTRAINT fk_recommended_book_feedback FOREIGN KEY (fb_id) REFERENCES feedback(fb_id) -- Corrected the reference here
|
|---|
| 273 | );
|
|---|
| 274 |
|
|---|
| 275 | CREATE TABLE recommended_chapter (
|
|---|
| 276 | calendar_event_id INT,
|
|---|
| 277 | book_id INT,
|
|---|
| 278 | chapter_number INT,
|
|---|
| 279 | PRIMARY KEY (calendar_event_id),
|
|---|
| 280 | CONSTRAINT fk_recommended_chapter_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id),
|
|---|
| 281 | CONSTRAINT fk_recommended_chapter_chapter FOREIGN KEY (book_id, chapter_number) REFERENCES chapter(book_id, chapter_number)
|
|---|
| 282 | );
|
|---|
| 283 |
|
|---|
| 284 | CREATE TABLE has_consultations (
|
|---|
| 285 | calendar_event_id INT,
|
|---|
| 286 | professor_id INT,
|
|---|
| 287 | PRIMARY KEY (calendar_event_id),
|
|---|
| 288 | CONSTRAINT fk_has_consultations_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id),
|
|---|
| 289 | CONSTRAINT fk_has_consultations_professor FOREIGN KEY (professor_id) REFERENCES professor(professor_id)
|
|---|
| 290 | );
|
|---|
| 291 |
|
|---|
| 292 | CREATE TABLE year_has_subject (
|
|---|
| 293 | student_id INT,
|
|---|
| 294 | starting_year INT,
|
|---|
| 295 | finishing_year INT,
|
|---|
| 296 | term_type VARCHAR(50),
|
|---|
| 297 | term_subject_id INT,
|
|---|
| 298 | student_id_ref INT,
|
|---|
| 299 | starting_year_ref INT,
|
|---|
| 300 | finishing_year_ref INT,
|
|---|
| 301 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 302 | CONSTRAINT fk_year_has_subject_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 303 | CONSTRAINT fk_year_has_subject_school_year FOREIGN KEY (student_id_ref, starting_year_ref, finishing_year_ref) REFERENCES school_year(student_id, starting_year, finishing_year)
|
|---|
| 304 | );
|
|---|
| 305 |
|
|---|
| 306 | CREATE TABLE student_dashboard (
|
|---|
| 307 | student_id INT,
|
|---|
| 308 | dashboard_id INT,
|
|---|
| 309 | PRIMARY KEY (student_id, dashboard_id),
|
|---|
| 310 | CONSTRAINT fk_student_dashboard_dashboard FOREIGN KEY (student_id, dashboard_id) REFERENCES dashboard(student_id, dashboard_id)
|
|---|
| 311 | );
|
|---|
| 312 |
|
|---|
| 313 | CREATE TABLE studied_in_school_year (
|
|---|
| 314 | student_id INT,
|
|---|
| 315 | starting_year INT,
|
|---|
| 316 | finishing_year INT,
|
|---|
| 317 | term_type VARCHAR(50),
|
|---|
| 318 | term_subject_id INT,
|
|---|
| 319 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 320 | CONSTRAINT fk_studied_in_school_year_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id)
|
|---|
| 321 | );
|
|---|
| 322 |
|
|---|
| 323 | CREATE TABLE dashboard_notes (
|
|---|
| 324 | student_id INT,
|
|---|
| 325 | dashboard_id INT,
|
|---|
| 326 | PRIMARY KEY (student_id, dashboard_id),
|
|---|
| 327 | CONSTRAINT fk_dashboard_notes_dashboard FOREIGN KEY (student_id, dashboard_id) REFERENCES dashboard(student_id, dashboard_id)
|
|---|
| 328 | );
|
|---|
| 329 |
|
|---|
| 330 | CREATE TABLE book_modules (
|
|---|
| 331 | book_id INT,
|
|---|
| 332 | chapter_number INT,
|
|---|
| 333 | PRIMARY KEY (book_id, chapter_number),
|
|---|
| 334 | CONSTRAINT fk_book_modules_subject_book FOREIGN KEY (book_id) REFERENCES subject_book(book_id)
|
|---|
| 335 | );
|
|---|
| 336 |
|
|---|
| 337 | CREATE TABLE contains_terms (
|
|---|
| 338 | student_id INT,
|
|---|
| 339 | starting_year INT,
|
|---|
| 340 | finishing_year INT,
|
|---|
| 341 | term_type VARCHAR(50),
|
|---|
| 342 | term_subject_id INT,
|
|---|
| 343 | PRIMARY KEY (student_id, starting_year, finishing_year, term_type, term_subject_id),
|
|---|
| 344 | CONSTRAINT fk_contains_terms_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id)
|
|---|
| 345 | );
|
|---|
| 346 |
|
|---|
| 347 | CREATE TABLE has_e_mail (
|
|---|
| 348 | student_id INT,
|
|---|
| 349 | e_mail_id INT,
|
|---|
| 350 | PRIMARY KEY (student_id, e_mail_id),
|
|---|
| 351 | CONSTRAINT fk_has_e_mail_student FOREIGN KEY (student_id) REFERENCES student(student_id)
|
|---|
| 352 | );
|
|---|
| 353 |
|
|---|
| 354 | CREATE TABLE dashboard_event (
|
|---|
| 355 | student_id INT,
|
|---|
| 356 | dashboard_id INT,
|
|---|
| 357 | calendar_event_id INT,
|
|---|
| 358 | PRIMARY KEY (student_id, dashboard_id, calendar_event_id),
|
|---|
| 359 | CONSTRAINT fk_dashboard_event_dashboard FOREIGN KEY (student_id, dashboard_id) REFERENCES dashboard(student_id, dashboard_id),
|
|---|
| 360 | CONSTRAINT fk_dashboard_event_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id)
|
|---|
| 361 | );
|
|---|
| 362 |
|
|---|
| 363 | CREATE TABLE subject_event (
|
|---|
| 364 | calendar_event_id INT,
|
|---|
| 365 | student_id INT,
|
|---|
| 366 | starting_year INT,
|
|---|
| 367 | finishing_year INT,
|
|---|
| 368 | term_type VARCHAR(50),
|
|---|
| 369 | term_subject_id INT,
|
|---|
| 370 | PRIMARY KEY (calendar_event_id),
|
|---|
| 371 | CONSTRAINT fk_subject_event_calendar_event FOREIGN KEY (calendar_event_id) REFERENCES calendar_event(calendar_event_id),
|
|---|
| 372 | CONSTRAINT fk_subject_event_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id)
|
|---|
| 373 | );
|
|---|
| 374 |
|
|---|
| 375 | CREATE TABLE creates_task (
|
|---|
| 376 | task_id INT,
|
|---|
| 377 | student_id INT,
|
|---|
| 378 | starting_year INT,
|
|---|
| 379 | finishing_year INT,
|
|---|
| 380 | term_type VARCHAR(50),
|
|---|
| 381 | term_subject_id INT,
|
|---|
| 382 | PRIMARY KEY (task_id),
|
|---|
| 383 | CONSTRAINT fk_creates_task_task FOREIGN KEY (task_id) REFERENCES task(task_id),
|
|---|
| 384 | CONSTRAINT fk_creates_task_subject_at_term FOREIGN KEY (student_id, starting_year, finishing_year, term_type, term_subject_id) REFERENCES subject_at_term(student_id, starting_year, finishing_year, term_type, term_subject_id)
|
|---|
| 385 | );
|
|---|
| 386 | CREATE TABLE student_event (
|
|---|
| 387 | calendar_event_id INT,
|
|---|
| 388 | student_id INT,
|
|---|
| 389 | PRIMARY KEY (calendar_event_id, student_id),
|
|---|
| 390 | CONSTRAINT fk_student_event_calendar_event
|
|---|
| 391 | FOREIGN KEY (calendar_event_id)
|
|---|
| 392 | REFERENCES calendar_event(calendar_event_id),
|
|---|
| 393 | CONSTRAINT fk_student_event_student
|
|---|
| 394 | FOREIGN KEY (student_id)
|
|---|
| 395 | REFERENCES student(student_id)
|
|---|
| 396 | );
|
|---|
| 397 |
|
|---|
| 398 | CREATE TABLE student_task (
|
|---|
| 399 | task_id INT,
|
|---|
| 400 | student_id INT,
|
|---|
| 401 | PRIMARY KEY (task_id, student_id),
|
|---|
| 402 | CONSTRAINT fk_student_task_task
|
|---|
| 403 | FOREIGN KEY (task_id)
|
|---|
| 404 | REFERENCES task(task_id),
|
|---|
| 405 | CONSTRAINT fk_student_task_student
|
|---|
| 406 | FOREIGN KEY (student_id)
|
|---|
| 407 | REFERENCES student(student_id)
|
|---|
| 408 | );
|
|---|
| 409 |
|
|---|
| 410 | CREATE TABLE book_author (
|
|---|
| 411 | author_id INT,
|
|---|
| 412 | book_id INT,
|
|---|
| 413 | PRIMARY KEY (author_id, book_id),
|
|---|
| 414 | CONSTRAINT fk_book_author_author
|
|---|
| 415 | FOREIGN KEY (author_id)
|
|---|
| 416 | REFERENCES author(author_id),
|
|---|
| 417 | CONSTRAINT fk_book_author_book
|
|---|
| 418 | FOREIGN KEY (book_id)
|
|---|
| 419 | REFERENCES subject_book(book_id)
|
|---|
| 420 | );
|
|---|
| 421 |
|
|---|
| 422 | CREATE TABLE event_reminder (
|
|---|
| 423 | calendar_event_id INT,
|
|---|
| 424 | r_id INT,
|
|---|
| 425 | PRIMARY KEY (calendar_event_id, r_id),
|
|---|
| 426 | CONSTRAINT fk_event_reminder_calendar_event
|
|---|
| 427 | FOREIGN KEY (calendar_event_id)
|
|---|
| 428 | REFERENCES calendar_event(calendar_event_id)
|
|---|
| 429 | );
|
|---|
| 430 |
|
|---|
| 431 |
|
|---|