我有一个有点独特的情况在这里,我有3个型号:Degree
,Student
和Consultant
。创建属于许多关系,超过2个模型envolved
学生和顾问之间有多对多的关系。
此外,学位和学生之间还有多对多的关系。
我可以为上述关系中的每一个设置2个数据透视表,
但是这里重要的是:一个具体学位的学生可以有1位顾问。
换句话说,创建2个单独的数据透视表,并不能告诉我哪位顾问对于特定用户的程度如何。
在这里我可以想到的2个解决方案:
第一个是创建一个数据透视表3个的外键,如:
student_id | degree_id | consultant_id
这样我可以知道谁是学生的顾问,为特定的度。
但是,这是一种构建数据库的标准方式吗?
另外,我应该为此创建一个Pivot模型吗?
代码段会是什么样子?
另一种方法我能想到的是,创建2代独立的枢轴表的,并在其它一个引用一个透视表id
。
因此,这看起来就像是这样的:
degree_student:student_id | degree_id
consultant_student:student_id | consultant_id | **degree_student_id**
再次,这是一个标准的做法?
我应该为此创建一个Pivot模型吗?
进行最后讨论,我会接受任何其他解决方案建议,更好(/标准)。