質問: ### 前提・実現したいこと 以下の三つの主体があります。 * プロジェクト * チーム * メンバー そして、以下の要件を満たしたいです。 * チームとメンバーは多対多の関係 * チームとプロジェクトは多対多の関係 * プロジェクトからチームを通してメンバーを取得する時、メンバーをそれぞれのジョブタイトルと一緒に表示させたい。 * メンバーのジョブタイトルは、**プロジェクトごとに変わる。** * 一つのプロジェクトの中では、メンバーによってジョブタイトルは変わる。 ### 発生している問題 この**ジョブタイトルがプロジェクトごとに変わる**というデータ設計の仕方がわからないです。 以下のようなER図を書いたところで止まってしまいました。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/e2e752c4ce83584ed5fba178eca98e35.png) ER図 ![](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/https://i.gyazo.com/1fb77a48af724c594af9e7bc7cbf7d4b.png)
回答: 私の案をば [チーム]*-*[メンバー] の関係はそのままで良いと思います。(ただし中間テーブルはサロゲートキーを持たないことが多い) これはマスターデータと考えていいでしょう。 [ジョブ]は微妙ですが、これもマスターデータと考えていいでしょう。 マスター側では[ジョブ]は紐づけません。 すると、トランザクションデータは多分こんな感じに紐づくと思います。。 [プロジェクト]*-*[ジョブ]*-*[メンバー] 最終的に [チーム]*-*[メンバー]*-*[ジョブ]*-*[プロジェクト] こんな感じでしょうか?