django人事管理系统数据库设计代码
时间: 2023-09-21 17:03:11 浏览: 52
以下是一个简单的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模型中,我们定义了开始时间、结束时间、原因和状态。
这只是一个简单的示例,实际上您的数据库设计可能需要更多的模型和字段,以满足您的业务需求。