-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLMS_table_creation.sql
87 lines (71 loc) · 2.22 KB
/
LMS_table_creation.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
-- Starting to create tables in database
CREATE TABLE IF NOT EXISTS students(
student_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(150) UNIQUE
);
CREATE TABLE IF NOT EXISTS instructors(
instructor_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
specialization VARCHAR(50)
);
CREATE TABLE IF NOT EXISTS courses(
course_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(150) NOT NULL,
course_description TEXT NOT NULL,
duration_in_minutes INT NOT NULL,
instructor_id INT,
FOREIGN KEY (instructor_id) REFERENCES instructors(instructor_id)
ON UPDATE CASCADE
ON DELETE NO ACTION
);
CREATE TABLE IF NOT EXISTS Enrollments (
enrollment_id INT AUTO_INCREMENT PRIMARY KEY,
student_id INT,
course_id INT,
enrollment_date DATE,
FOREIGN KEY (student_id) REFERENCES Students(student_id)
ON UPDATE CASCADE
ON DELETE NO ACTION,
FOREIGN KEY (course_id) REFERENCES Courses(course_id)
ON UPDATE CASCADE
ON DELETE NO ACTION
);
CREATE TABLE IF NOT EXISTS Feedback (
feedback_id INT AUTO_INCREMENT PRIMARY KEY,
course_id INT,
student_id INT,
`comment` TEXT,
rating INT CHECK (rating >= 1 AND rating <= 5),
FOREIGN KEY (course_id) REFERENCES Courses(course_id)
ON UPDATE CASCADE
ON DELETE NO ACTION,
FOREIGN KEY (student_id) REFERENCES Students(student_id)
ON UPDATE CASCADE
ON DELETE NO ACTION
);
CREATE TABLE IF NOT EXISTS Assignments (
assignment_id INT AUTO_INCREMENT PRIMARY KEY,
course_id INT,
title VARCHAR(255),
description TEXT,
due_date DATE,
FOREIGN KEY (course_id) REFERENCES Courses(course_id)
ON UPDATE CASCADE
ON DELETE NO ACTION
);
CREATE TABLE IF NOT EXISTS Grades (
grade_id INT AUTO_INCREMENT PRIMARY KEY,
assignment_id INT,
student_id INT,
grade VARCHAR(10),
FOREIGN KEY (assignment_id) REFERENCES Assignments(assignment_id)
ON UPDATE CASCADE
ON DELETE NO ACTION,
FOREIGN KEY (student_id) REFERENCES Students(student_id)
ON UPDATE CASCADE
ON DELETE NO ACTION
);
-- Table creation process finished