【发布时间】:2018-01-05 06:06:26
【问题描述】:
我在这里有一个特殊的情况,我有 3 个模型:Degree、Student 和 Consultant。
学生和顾问之间存在多对多关系。
学位和学生之间也存在多对多关系。
对于上述关系中的每一个,我可以有 2 个数据透视表,
但这里重要的是:一个特定学位的学生可以有一名顾问。
换句话说,创建 2 个单独的数据透视表,并没有给我哪个顾问对于特定用户的程度的信息。
我可以在这里想到 2 个解决方案:
第一个是创建一个带有 3 个外键的数据透视表,例如:
student_id | degree_id | consultant_id
这样我就可以知道谁是学生特定学位的顾问。
但是这种方式是构建数据库的标准方式吗?
另外,我应该为此创建一个 Pivot 模型吗?
代码 sn-p 会是什么样子?
我能想到的另一种方法是创建 2 个单独的数据透视表,并在另一个数据透视表中引用 id。
所以这看起来像:
学位学生:student_id | degree_id
顾问学生:student_id | consultant_id | **degree_student_id**
再次,这是一种标准方法吗?
我应该为此创建一个 Pivot 模型吗?
对于最后的讨论,我会接受任何其他更好(/标准)的解决方案建议。
【问题讨论】:
标签: mysql database laravel foreign-keys