• We just launched and are currently in beta. Join us as we build and grow the community.

Database Design for Payroll Management System

rednl2

Pay-per-click Pro
R Rep
0
0
0
Rep
0
R Vouches
0
0
0
Vouches
0
Posts
64
Likes
139
Bits
2 MONTHS
2 2 MONTHS OF SERVICE
LEVEL 1 400 XP
PHP-Payroll.drawio.png


This is a Database Design for a Simple Payroll Management System. This ERD (Entity Relationship Diagram) is the one I used for developing Payroll Management System using PHP/MySQL. The payroll system allows the company management to manage and calculates the payslip of their employees. With this ERD or Database Design of Payroll System, management can calculate the employees' payslip that includes their allowances and deductions. It also includes an Attendance Table which will be used in computing the total days of present, days of absences, minutes of tardy/undertime of each employee between the cut-off days.

PHP-Payroll.drawio.png


The Employee Payroll Management System Database consists of 11 tables. It has the Department, Position, Allowances, Deductions, Allowances, Attendance, Employee, Employee Allowances, Employee Deductions, Payroll, Payroll Items/Payslip, and Users Tables.

The Department Table stores all the list of departments in the company. This table is connected to both the Position and Employee tables. The data stored in this table helps to identify the certain departments of the employees.

Department Table

Field Name

Description

Type

Length

id (PK)

Department ID

int

11

name

Department Name

TEXT

The Position Table stores all the Employees' Positions in the company. Each of the positions is connected to the department which means the position is only available for a certain Department.

Position Table

Field Name

Description

Type

Length

id (PK)

Position ID

int

11

department_id (FK)

Department ID

int

11

The Allowances Table stores all the allowances available for the company's employees.

Allowances Table

Field Name

Description

Type

Length

id (PK)

Allowance ID

int

11

allowance

Allowance Name

Text

description

Allowance's Description

Text

The Deductions Table stores all the allowances available for the company's employees.

Deductions Table

Field Name

Description

Type

Length

id (PK)

Deduction ID

int

11

deduction

Deduction Name

Text

description

Deduction's Description

Text

The Employee Table stores the list of the employees of the company. This contains fields about the basic personal information and employee's details to the company.

Employee Table

Field Name

Description

Type

Length

id (PK)

Employee ID

int

11

employee_code

Employee's Company ID Code

varchar

100

firstname

Employee's First Name

varchar

250

middlename

Employee's Middle Name

varchar

250

lastname

Employee's Last Name

varchar

250

department_id (FK)

Department ID

int

11

position_id (FK)

Position ID

int

11

salary

Employee's Monthly Salary

double

The Employee Allowances Table store the list of allowances of each employee. Employees' Allowances might be different to others and others might not have. This table contains a field that helps the system to identify when (Monthly, Semi-Monthly) the system will add the other earnings of the employee.

Employee Allowances Table

Field Name

Description

Type

Length

id (PK)

Employee Allowance ID

int

11

employee_id (FK)

Employee ID

int

11

allowance_id (FK)

Allowance ID

int

11

type

Payroll Type to Add the Allowance (1 = Monthly, 2 = Semi-Monthly, 3 = once)

tinyint

1

amount

Allowance Amount

double

effective_date

The date when the allowance will be added to the payslip

date

date_created

Date/Time of the data inserted

DateTIme

The Employee Deductions Table store the list of deductions of each employee. Like the Allowance Table, Employees Deduction might be different from others and others might not have. This table contains a field that helps the system to identify if when (Monthly, Semi-Monthly, or once) the system will deduct the amount to the certain employee.

Employee Allowances Table

Field Name

Description

Type

Length

id (PK)

Employee Allowance ID

int

11

employee_id (FK)

Employee ID

int

11

deduction_id (FK)

Deduction ID

int

11

type

Payroll Type to deduct the Deduction (1 = Monthly, 2 = Semi-Monthly, 3 = once)

tinyint

1

amount

Deduction Amount

double

effective_date

The date when the deduction will be added to the payslip

date

date_created

Date/Time of the data inserted

DateTIme

The Attendance Table stores all the attendances of the employees. Each employee will have 4 data per day in this table. This data could be the employees for Time-in, Lunch-out, After Lunch-in, and Time-out. This also contains a DateTime log that will be used in calculating the rendered working hours of the employees each working day.

Attendance Table

Field Name

Description

Type

Length

id (PK)

Attendance ID

int

11

employee_id (FK)

Employee ID

int

11

log_type

Attendance Log Type (1 = Time IN, 2 = Lunch Out, 3 = After Lunch In, 4 = Time Out)

tinyint

1

datetime_log

Log's Date and Time

Date

The Payroll Table stores the payroll cut-offs of the company. The system relies on this table on how to compute the employees' payslips. The system will also fetch the employees' attendances between the cut-off's date range.

Payroll Table

Field Name

Description

Type

Length

id (PK)

Payroll ID

int

11

ref_no

Payroll Reference No.

varchar

100

date_from

Payroll Cut-off start date

Date

date_to

Payroll Cut-off end date

Date

type

Payroll Type (1 = Monthly, 2 = Semi-Monthly)

tinyint

1

status

Payroll Type (1 = New, 2 = Computed)

tinyint

1

date_created

Date/Time when the data has been inserted

DateTime

The Payroll Item/Payslip Table stores the payslip details of each employee for a certain payroll. This table contains the number of presents, absences, late of the employee. The Allowances and Deductions JSON Data of employees is also stored in this table.

Payslip Table

Field Name

Description

Type

Length

id (PK)

Payslip ID

int

11

payroll_id (FK)

Payroll ID

int

11

employee_id (FK)

Employee ID

int

11

present

Employee's days of present

tinyint

3

absent

Employee's days of absences

tinyint

3

salary

Base Salary Amount of the Employee for the certain Cut-off

double

allowance_amount

Total Amount of the Employee's Allowance

double

allowances

Employee's Allowance JSON Data

TEXT

deduction_amount

Total Amount of the Employee's Deduction

double

deductions

Employee's deduction JSON Data

TEXT

net

Employee's NET Income

double

date_created

Date/Time when the data has been inserted

DateTime

Lastly, the Users Table. This table doesn't have any relation with the other tables above. This table only stores the system users' credentials.

Users Table

Field Name

Description

Type

Length

id (PK)

User ID

int

11

name

User Name

TEXT

username

Username

TEXT

password

User Password

TEXT

type

User Type (1 = Administrator, 2 = Staff)

tinyint

1

That's it! You can use this Database Design for your Payroll System Project as a reference or use it to begin with to develop your own Employees Payroll System Application.

To check how this Payroll System Database Design works, you can click the link below to redirect to the actual project source code of a Payroll System that uses this ERD:

Payroll Management System using PHP and MySQL Database Source Code

I hope this will you with what you are looking for.

Thanks!

 

452,496

330,760

330,768

Top