35 lines
1.0 KiB
SQL
35 lines
1.0 KiB
SQL
DROP TABLE IF EXISTS attendance, parent_child, users, roles;
|
|
|
|
CREATE TABLE IF NOT EXISTS roles (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
role_name VARCHAR(255) NOT NULL UNIQUE
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(255) NOT NULL UNIQUE,
|
|
email VARCHAR(255) NOT NULL UNIQUE,
|
|
password VARCHAR(255) NOT NULL,
|
|
role_id INT,
|
|
first_name VARCHAR(255),
|
|
last_name VARCHAR(255),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (role_id) REFERENCES roles(id) ON DELETE SET NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS attendance (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
student_id INT NOT NULL,
|
|
attendance_date DATE NOT NULL,
|
|
status ENUM('present', 'absent', 'late') NOT NULL,
|
|
FOREIGN KEY (student_id) REFERENCES users(id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS parent_child (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
parent_id INT NOT NULL,
|
|
child_id INT NOT NULL,
|
|
FOREIGN KEY (parent_id) REFERENCES users(id),
|
|
FOREIGN KEY (child_id) REFERENCES users(id)
|
|
);
|