Laravel与多个外键的关系

时间:2013-06-06 20:35:11

标签: php database-design laravel laravel-4

使用具有多个外键的表设置表和模型的标准方法是什么。

示例一个典型的外键关系看起来像

database tables:

clients
    id
    name
doctors
    id
    name
client_doctor
    client_id
    doctor_id

但是就我的例子而言,医生也可能与多个诊所有关,而且每个诊所可能有多种类型。

我想重构我的表格以反映laravel标准,但目前我的表格看起来像

clients
doctors
clinics
doctypes
doctor_clinic_doctype
    doctor_id
    clinic_id
    doctype_id
client_doctor_clinic_type
    client_id
    the three columns from doctor_clinic_type as a foreign key

这里的最佳做法是什么。

1 个答案:

答案 0 :(得分:1)

由于Eloquent将为数据透视表提供一个id列,您可以在该ID上匹配。

所以这些表可能看起来像这样。

doctor_clinic_doctype
    id
    doctor_id
    clinic_id
    doctype_id

client_doctor_clinic_type
    client_id
    doctor_clinic_doctype_id (foreign key on doctor_clinic_doctype.id)

我认为这可能是与Eloquent合作的唯一解决方案(不确定)。