0

我不确定在我的 Laravel 4 应用程序中表达模型之间关系的最佳方式。我有三个模型用于在数据库中存储信息EmployerEmployeeUser。基本上,EmployerEmployee模型只会包含有关User模型的元信息。我认为以下表达式是我能想到的最好的表达方式:

  • Employer有很多Employee
  • Employee属于一个Employer
  • Employer属于一个User
  • Employee属于一个User

在数据库中,我将在引用表中字段的表和表中都有一个user_id外键。这是对该域建模的最佳方式吗?employersemployeesidusers

4

1 回答 1

0

这取决于。一名雇员可以拥有多个雇主吗?一名员工可以在多个地方工作吗?如果员工离开(并丢失历史记录),您是否要删除记录?

如果您可以在员工离开时删除员工记录,您可以在员工表中拥有一个employer_id 字段。但请做好准备,如果您将来需要它们,您将无法轻松添加功能。

如果你想为未来做准备:你可能想要一张桌子,上面写着

employer_id
employee_id
start_date
end_date

即使这样,如果一个员工来了又离开了,你也有相同的employees_id、employee_id 的记录。所以这看起来像你需要一个内部密钥并说:

employment_record_id // this is the primary key
employer_id
employee_id
start_date
end_date

我不确定用户到底是什么,但会问自己相同类型的问题:

  1. 用户是否可以与员工记录一起存在
  2. 您可以拥有没有用户记录的员工吗
  3. 员工用户记录可以更改吗
  4. 用户员工记录可以更改吗
于 2013-08-25T18:03:21.097 回答