私はちょっとユニークな状況があります。私は3モデルです、Student
とConsultant
です。2つ以上のモデルを持つ多くの関係に属します
学生とコンサルタントの間には、多くの関係があります。
また、学位と学生の間には多くの関係があります。
上記のリレーションのそれぞれについて、ピボットテーブルを2つ持つことができます。
ここで重要なのは、特定の学位を取得した1人のコンサルタントがいることです。
つまり、2つの別個のピボットテーブルを作成しても、コンサルタントが特定のユーザーのためにどの程度の情報を得られるのか分かりません。
私はここで2つの解決策を考えることができます。
最初のもののような3つの外部キーでピボットテーブルを作成します
student_id | degree_id | consultant_id
このように、私は特定のための学生のコンサルタントが誰であるかを知ることができ度。
これは、データベースを構築する標準的な方法ですか?
また、このためにピボットモデルを作成する必要がありますか?
コードスニペットはどのように見えますか?
私が考えることができる他のアプローチは、2つの別個のピボットテーブルを作成し、もう一方のピボットテーブルの参照id
を参照することです。
は、これは何かのように次のようになります。
degree_student:student_id | degree_id
consultant_student:student_id | consultant_id | **degree_student_id**
繰り返しますが、これは標準的なアプローチですか?
このためにピボットモデルを作成する必要がありますか?
最終的な議論のために、より良い(/標準)他のソリューション提案を採用したいと思います。
注:私はhereとhereをチェックしましたが、私の要件を満たすことができませんでした。