Question: USE LanguageCenter; CREATE TABLE Student ( student _ id INT PRIMARY KEY AUTO _ INCREMENT, first _ name VARCHAR ( 2 0 ) , last
USE LanguageCenter; CREATE TABLE Student studentid INT PRIMARY KEY AUTOINCREMENT, firstname VARCHAR lastname VARCHAR dateofbirth DATE, contactnumber VARCHAR email VARCHAR address VARCHAR registrationdate DATE NOT NULL ; CREATE TABLE Teacher teacherid INT PRIMARY KEY AUTOINCREMENT, firstname VARCHAR lastname VARCHAR contactnumber VARCHAR email VARCHAR hiredate DATE, salary DECIMAL; CREATE TABLE Course courseid INT PRIMARY KEY AUTOINCREMENT, coursename VARCHAR language VARCHAR level ENUMBeginner 'Intermediate', 'Advanced' coursefee DECIMAL CHECK coursefee durationweeks INT ; CREATE TABLE Class classid INT PRIMARY KEY AUTOINCREMENT, classname VARCHAR roomnumber VARCHAR starttime TIME, endtime TIME ; CREATE TABLE Enrollment enrollmentid INT PRIMARY KEY AUTOINCREMENT, studentid INT, courseid INT, enrollmentdate DATE, progressstatus ENUMNot Started', In Progress', 'Completed' FOREIGN KEY studentid REFERENCES Studentstudentid FOREIGN KEY courseid REFERENCES Coursecourseid; CREATE TABLE Payment paymentid INT PRIMARY KEY AUTOINCREMENT, studentid INT, paymentdate DATE, amount DECIMAL paymentmethod ENUMCredit Card', 'Cash', 'Bank Transfer' FOREIGN KEY studentid REFERENCES Studentstudentid; DELIMITER $$ CREATE TRIGGER validatepaymentdate BEFORE INSERT ON Payment FOR EACH ROW BEGIN Check if the paymentdate is in the future IF NEW.paymentdate CURDATE THEN SIGNAL SQLSTATE SET MESSAGETEXT 'Payment date cannot be in the future'; END IF; END$$ DELIMITER ; CREATE TABLE Schedule scheduleid INT PRIMARY KEY AUTOINCREMENT, classid INT, teacherid INT, dayofweek ENUMMonday 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday' starttime TIME, endtime TIME, FOREIGN KEY classid REFERENCES Classclassid FOREIGN KEY teacherid REFERENCES Teacherteacherid; CREATE TABLE Attendance attendanceid INT PRIMARY KEY AUTOINCREMENT, studentid INT, classid INT, attendancedate DATE, attendancestatus ENUMPresent 'Absent' FOREIGN KEY studentid REFERENCES Studentstudentid FOREIGN KEY classid REFERENCES Classclassid; CREATE TABLE Feedback feedbackid INT PRIMARY KEY AUTOINCREMENT, studentid INT, courseid INT, feedbackdate DATE, rating INT CHECK rating BETWEEN AND comments TEXT, FOREIGN KEY studentid REFERENCES Studentstudentid FOREIGN KEY courseid REFERENCES Coursecourseid; CREATE TABLE Admin adminid INT PRIMARY KEY AUTOINCREMENT, firstname VARCHAR lastname VARCHAR contactnumber VARCHAR email VARCHAR role VARCHAR; CREATE ROLE 'StudentRole'; CREATE ROLE 'TeacherRole'; Grant readwrite access to students for their own details GRANT SELECT, UPDATE ON Student TO 'StudentRole'; GRANT SELECT ON Course TO 'StudentRole'; GRANT SELECT ON Enrollment TO 'StudentRole'; GRANT INSERT, UPDATE ON Feedback TO 'StudentRole'; Grant readwrite access to teachers for attendance marking GRANT SELECT, UPDATE ON Teacher TO 'TeacherRole'; GRANT SELECT ON Class TO 'TeacherRole'; GRANT SELECT, UPDATE ON Attendance TO 'TeacherRole'; To create an ER diagram to this SQL code with all relations and attributes
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
