-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.sql
More file actions
82 lines (73 loc) · 2.34 KB
/
db.sql
File metadata and controls
82 lines (73 loc) · 2.34 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
-- ============================================
-- USERS TABLE
-- ============================================
CREATE TABLE Users (
UserID INT IDENTITY(1,1) PRIMARY KEY,
FullName VARCHAR(150) NOT NULL,
Email VARCHAR(150) UNIQUE NOT NULL,
[Password] VARCHAR(255) NOT NULL,
[Role] VARCHAR(50) NOT NULL, -- Admin, Student, Staff
CreatedDate DATETIME DEFAULT GETDATE()
);
-- ============================================
-- COURSES TABLE
-- ============================================
CREATE TABLE Courses (
CourseID INT IDENTITY(1,1) PRIMARY KEY,
CourseName VARCHAR(150) NOT NULL,
CourseCode VARCHAR(50) UNIQUE NOT NULL,
Duration VARCHAR(50)
);
-- ============================================
-- STUDENTS TABLE
-- ============================================
CREATE TABLE Students (
StudentID INT IDENTITY(1,1) PRIMARY KEY,
UserID INT NOT NULL,
FullName VARCHAR(150) NOT NULL,
DateOfBirth DATE,
Gender VARCHAR(20),
Email VARCHAR(150),
Phone VARCHAR(20),
Address VARCHAR(255),
CourseID INT,
CourseCode VARCHAR(50),
FOREIGN KEY (UserID) REFERENCES Users(UserID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
-- ============================================
-- STAFF TABLE
-- ============================================
CREATE TABLE Staff (
StaffID INT IDENTITY(1,1) PRIMARY KEY,
UserID INT NOT NULL,
FullName VARCHAR(150),
Email VARCHAR(150),
Phone VARCHAR(20),
Department VARCHAR(100),
FOREIGN KEY (UserID) REFERENCES Users(UserID)
);
-- ============================================
-- ATTENDANCE TABLE
-- ============================================
CREATE TABLE Attendance (
AttendanceID INT IDENTITY(1,1) PRIMARY KEY,
StudentID INT NOT NULL,
[Date] DATE NOT NULL,
[Status] VARCHAR(20) CHECK ([Status] IN ('Present', 'Absent', 'Late')),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);
-- ============================================
-- MARKS TABLE
-- ============================================
CREATE TABLE Marks (
MarksID INT IDENTITY(1,1) PRIMARY KEY,
StudentID INT NOT NULL,
CourseID INT NOT NULL,
Subject VARCHAR(100),
MarksObtained INT,
Grade VARCHAR(5),
CourseCode VARCHAR(50),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);