Employee_Management_System_Database_Design
Employee_Management_System_Database_Design
1. Introduction
This document provides a complete database design for the Employee Management System (EMS), including an
Entity-Relationship (ER) diagram, schema definitions, indexes, data seeding examples, stored procedures, and triggers.
3. Database Schema
4. Indexing
DELIMITER //
CREATE PROCEDURE GetEmployeeDetails (IN emp_id INT)
BEGIN
SELECT Employees.first_name, Employees.last_name, Departments.name AS department,
Roles.title AS role, Salaries.amount AS salary
FROM Employees
JOIN Departments ON Employees.department_id = Departments.id
JOIN Roles ON Employees.role_id = Roles.id
JOIN Salaries ON Employees.salary_id = Salaries.id
WHERE Employees.id = emp_id;
END //
DELIMITER ;
7. Trigger Example
DELIMITER //
CREATE TRIGGER after_employee_insert
AFTER INSERT ON Employees
FOR EACH ROW
BEGIN
INSERT INTO Users (username, password_hash, employee_id)
VALUES (CONCAT(NEW.first_name, '.', NEW.last_name), 'default_hash', NEW.id);
END //
DELIMITER ;