人事管理系统的数据库设计
时间: 2023-10-13 07:07:55 浏览: 61
人事管理系统的数据库设计应该包括以下表:
1. 用户表:存储系统用户的基本信息,如用户名、密码、真实姓名、性别、联系方式等。
2. 员工表:存储企业员工的基本信息,如员工编号、姓名、性别、出生日期、联系方式、部门、职位等。
3. 部门表:存储企业部门的基本信息,如部门编号、部门名称、上级部门、部门主管等。
4. 职位表:存储企业职位的基本信息,如职位编号、职位名称、职位描述、职位等级等。
5. 薪资表:存储员工薪资信息,如员工编号、基本工资、补贴、奖金、扣除等。
6. 员工培训表:存储员工培训信息,如培训编号、员工编号、培训内容、培训时间、培训地点等。
7. 员工考核表:存储员工考核信息,如考核编号、员工编号、考核内容、考核时间、考核结果等。
8. 员工离职表:存储员工离职信息,如离职编号、员工编号、离职原因、离职时间等。
以上是人事管理系统的基本数据库设计,还可以根据实际需求添加其他表和字段。
相关问题
人事管理系统数据库设计
一个基本的人事管理系统需要存储员工、薪资、考勤、福利等信息。因此,可以设计以下数据库结构:
1. 员工信息表(Employee)
- 员工ID(EmployeeID)- 主键
- 姓名(Name)
- 性别(Gender)
- 出生日期(BirthDate)
- 身份证号码(IDCard)
- 入职日期(HireDate)
- 部门ID(DepartmentID)- 外键
- 职位(Position)
- 联系电话(Phone)
- 电子邮件(Email)
2. 部门信息表(Department)
- 部门ID(DepartmentID)- 主键
- 部门名称(DepartmentName)
- 上级部门ID(ParentDepartmentID)- 外键
3. 薪资信息表(Salary)
- 薪资ID(SalaryID)- 主键
- 员工ID(EmployeeID)- 外键
- 员工姓名(EmployeeName)
- 基本工资(BasicSalary)
- 绩效工资(PerformanceSalary)
- 奖金(Bonus)
- 扣款(Deduction)
- 税前工资(GrossSalary)
- 个人所得税(PersonalIncomeTax)
- 实发工资(NetSalary)
4. 考勤信息表(Attendance)
- 考勤ID(AttendanceID)- 主键
- 员工ID(EmployeeID)- 外键
- 员工姓名(EmployeeName)
- 考勤日期(AttendanceDate)
- 上班时间(StartTime)
- 下班时间(EndTime)
- 工作时长(WorkingHours)
- 是否迟到(IsLate)
- 是否早退(IsEarly)
5. 福利信息表(Welfare)
- 福利ID(WelfareID)- 主键
- 员工ID(EmployeeID)- 外键
- 员工姓名(EmployeeName)
- 社保缴纳基数(SocialSecurityBase)
- 公积金缴纳基数(HousingFundBase)
- 医疗保险(MedicalInsurance)
- 养老保险(EndowmentInsurance)
- 失业保险(UnemploymentInsurance)
- 工伤保险(WorkInjuryInsurance)
- 生育保险(MaternityInsurance)
- 其他福利(OtherWelfare)
以上是人事管理系统的基本数据库设计,可以根据实际需求进行调整和扩展。
django人事管理系统数据库设计代码
以下是一个简单的Django人事管理系统的数据库设计代码示例:
```python
from django.db import models
from django.contrib.auth.models import User
class Employee(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone_number = models.CharField(max_length=20)
address = models.CharField(max_length=100)
birth_date = models.DateField()
hire_date = models.DateField()
salary = models.DecimalField(max_digits=8, decimal_places=2)
department = models.ForeignKey('Department', on_delete=models.CASCADE)
class Department(models.Model):
name = models.CharField(max_length=50)
manager = models.OneToOneField(Employee, on_delete=models.CASCADE)
description = models.CharField(max_length=200)
class LeaveRequest(models.Model):
employee = models.ForeignKey(Employee, on_delete=models.CASCADE)
start_date = models.DateField()
end_date = models.DateField()
reason = models.CharField(max_length=200)
status = models.CharField(max_length=20, choices=(('pending', 'Pending'), ('approved', 'Approved'), ('rejected', 'Rejected')), default='pending')
```
在上面的示例中,我们定义了三个模型:Employee(员工)、Department(部门)和LeaveRequest(休假申请)。Employee和Department之间是一对多的关系,一个Department有多个Employee,而一个Employee只能属于一个Department。LeaveRequest和Employee之间是一对多的关系,一个Employee可以有多个休假申请,但一个休假申请只属于一个Employee。
在Employee模型中,我们使用了Django内置的User模型来管理用户认证信息。我们还定义了一些其他的字段,如电话号码、地址、出生日期、入职日期、薪水和部门。在Department模型中,我们定义了部门名称、经理和描述。在LeaveRequest模型中,我们定义了开始时间、结束时间、原因和状态。
这只是一个简单的示例,实际上您的数据库设计可能需要更多的模型和字段,以满足您的业务需求。