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) );