我不确定在我的Laravel 4应用程序中表达模型之间关系的最佳方式。我有三个模型用于在数据库中存储信息:Employer
,Employee
和User
。基本上,Employer
和Employee
模型只会包含有关User
模型的元信息。我认为以下表达是我能想到的最好的表达方式:
Employer
有很多Employee
Employee
属于一个Employer
Employer
属于一个User
Employee
属于一个User
在数据库中,user_id
和employers
表中的employees
外键将引用id
字段users
字段}表。这是建模此域名的最佳方式吗?
答案 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
我不确定用户究竟是什么,但问自己相同类型的问题: