如何表达这些模型关系

时间:2013-08-25 17:55:48

标签: sql laravel relational-database laravel-4 entity-relationship

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

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

在数据库中,user_idemployers表中的employees外键将引用id字段users字段}表。这是建模此域名的最佳方式吗?

1 个答案:

答案 0 :(得分:0)

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

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

如果您想为未来做好准备:您可能希望有一个表格

employer_id
employee_id
start_date
end_date

即便如此,如果一名员工来,然后离开,你就拥有了相同的employee_id,employee_id的记录。这样看起来你需要一个内部密钥并且说:

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

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

  1. 用户是否存在员工记录
  2. 您是否有没有用户记录的员工
  3. 员工用户是否可以记录更改
  4. 用户员工记录更改