-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdatabase_schema.sql
More file actions
172 lines (144 loc) · 5.27 KB
/
Copy pathdatabase_schema.sql
File metadata and controls
172 lines (144 loc) · 5.27 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
-- ===============================================
-- STUDENT RESULT MANAGEMENT SYSTEM (DEPARTMENT-WISE)
-- ===============================================
-- Create Database
CREATE DATABASE IF NOT EXISTS student_result_mgmt;
USE student_result_mgmt;
-- ==============================
-- 1️⃣ DEPARTMENTS
-- ==============================
CREATE TABLE departments (
dept_id INT PRIMARY KEY AUTO_INCREMENT,
dept_name VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO departments (dept_name) VALUES
('Electronics'),
('Computer Science');
-- ==============================
-- 2️⃣ CLASSES
-- ==============================
CREATE TABLE classes (
class_id INT PRIMARY KEY AUTO_INCREMENT,
class_name VARCHAR(50) NOT NULL,
dept_id INT NOT NULL,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id) ON DELETE CASCADE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO classes (class_name, dept_id) VALUES
('ELEX-1', 1),
('ELEX-2', 1),
('CS-1', 2),
('CS-2', 2);
-- ==============================
-- 3️⃣ SUBJECTS
-- ==============================
CREATE TABLE subjects (
subject_id INT PRIMARY KEY AUTO_INCREMENT,
subject_name VARCHAR(100) NOT NULL,
class_id INT NOT NULL,
max_marks INT DEFAULT 100,
FOREIGN KEY (class_id) REFERENCES classes(class_id) ON DELETE CASCADE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Electronics Department Subjects
INSERT INTO subjects (subject_name, class_id) VALUES
('Basic Electronics', 1),
('Digital Circuits', 1),
('Analog Systems', 1),
('Microprocessors', 2),
('Control Systems', 2),
-- Computer Science Department Subjects
('Programming in C', 3),
('Data Structures', 3),
('Database Management', 3),
('Operating Systems', 4),
('Computer Networks', 4);
CREATE TABLE teachers (
teacher_id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
dept_id INT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (dept_id) REFERENCES departments(dept_id) ON DELETE CASCADE
);
INSERT INTO teachers (name, email, password, dept_id) VALUES
('Anita Verma', 'anita.verma@elex.edu', 'password123', 1),
('Rohit Mehta', 'rohit.mehta@elex.edu', 'password123', 1),
('Pooja Nair', 'pooja.nair@elex.edu', 'password123', 1),
('Deepak Rao', 'deepak.rao@cs.edu', 'password123', 2),
('Sneha Iyer', 'sneha.iyer@cs.edu', 'password123', 2),
('Arjun Deshmukh', 'arjun.deshmukh@cs.edu', 'password123', 2);
CREATE TABLE teacher_subjects (
id INT PRIMARY KEY AUTO_INCREMENT,
teacher_id INT NOT NULL,
subject_id INT NOT NULL,
FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id) ON DELETE CASCADE,
FOREIGN KEY (subject_id) REFERENCES subjects(subject_id) ON DELETE CASCADE,
UNIQUE KEY unique_teacher_subject (teacher_id, subject_id)
);
INSERT INTO teacher_subjects (teacher_id, subject_id) VALUES
(1, 1), (1, 2),
(2, 3), (2, 4),
(3, 5),
(4, 6), (4, 7),
(5, 8),
(6, 9), (6, 10);
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
roll_no VARCHAR(20) NOT NULL,
name VARCHAR(100) NOT NULL,
class_id INT NOT NULL,
FOREIGN KEY (class_id) REFERENCES classes(class_id) ON DELETE CASCADE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY unique_roll_class (roll_no, class_id)
);
INSERT INTO students (roll_no, name, class_id) VALUES
('E001', 'Rahul Sharma', 1),
('E002', 'Priya Patel', 1),
('E003', 'Amit Kumar', 1),
('E004', 'Neha Reddy', 2),
('E005', 'Vivek Yadav', 2),
('C001', 'Sanya Mehta', 3),
('C002', 'Nikhil Verma', 3),
('C003', 'Kiran Das', 3),
('C004', 'Snehal Patil', 4),
('C005', 'Harsh Agarwal', 4);
CREATE TABLE results (
result_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT NOT NULL,
subject_id INT NOT NULL,
marks_obtained INT NOT NULL,
teacher_id INT NOT NULL,
exam_date DATE NOT NULL,
remarks TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (student_id) REFERENCES students(student_id) ON DELETE CASCADE,
FOREIGN KEY (subject_id) REFERENCES subjects(subject_id) ON DELETE CASCADE,
FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id) ON DELETE CASCADE
);
-- Results for Electronics Students
INSERT INTO results (student_id, subject_id, marks_obtained, teacher_id, exam_date, remarks) VALUES
(1, 1, 88, 1, '2025-03-10', 'Excellent'),
(1, 2, 76, 1, '2025-03-11', 'Good'),
(1, 3, 82, 2, '2025-03-12', 'Very good'),
(1, 4, 79, 2, '2025-03-13', 'Good'),
(1, 5, 85, 3, '2025-03-14', 'Strong understanding'),
(2, 1, 90, 1, '2025-03-10', 'Excellent'),
(2, 2, 88, 1, '2025-03-11', 'Very good'),
(2, 3, 80, 2, '2025-03-12', 'Good'),
(2, 4, 75, 2, '2025-03-13', 'Nice effort'),
(2, 5, 83, 3, '2025-03-14', 'Consistent'),
-- Results for Computer Science Students
(6, 6, 91, 4, '2025-03-15', 'Outstanding'),
(6, 7, 87, 4, '2025-03-16', 'Excellent'),
(6, 8, 90, 5, '2025-03-17', 'Perfect work'),
(6, 9, 85, 6, '2025-03-18', 'Good grasp'),
(6, 10, 88, 6, '2025-03-19', 'Very good'),
(7, 6, 77, 4, '2025-03-15', 'Satisfactory'),
(7, 7, 80, 4, '2025-03-16', 'Improved'),
(7, 8, 79, 5, '2025-03-17', 'Good'),
(7, 9, 70, 6, '2025-03-18', 'Needs practice'),
(7, 10, 74, 6, '2025-03-19', 'Average');