MySQLでのDBデザインの提案が欲しいです。MySQLデータベース設計の提案
ムービーID、セレブID、ロールIDを含むテーブルMovie_Celebrity_Roleがあります。 この表は、映画、セレブ(CelebName & CelebID)と役割(プロデューサー、ディレクターなど、およびrespid)の間のリンクです。私が代わりに有名人の上記と同様しかし、ここで別のテーブルMovie_Company_Roleは、企業のIDが格納されている会社表とロールにリンクされている
は、プロダクションハウスなど異なるなど
私の問題は、のようないくつかのフィールドがあるあります会社とセレブの両方を持つメディア関係。したがって
、テーブルを結合するとき、私はMoviedID_CelebID_CompID_RoleIDとして別のテーブルを作成する場合は有名人のテーブルと会社テーブルは、このテーブルを照合してもMovie_celeb_roleとMovie_comp_roleに参加する必要があるとして、私は、重複エラーが発生します。
どうすればいいかお教えください。
私は自分のサイト上の結果は、次のようになりたい:
プロデューサー Celeb1 Celeb2
ディレクター Celeb1 Celeb3
... ... ...
メディアリレーション Celeb2 C ompany1 会社12
PS:このページでセレブや会社のリンクをクリックすると、セレブのページや会社のページに移動して、有名人や会社が関連付けられている映画をロールで一覧表示する必要があります。
したがって、同じテーブル内に意味的に異なるもの(会社のロールと「有名人」のロール)を保存しますか?企業の役割に余分な列が必要な場合はどうなりますか? – Jacob
"Media Relations"フィールド(列)はどのテーブルにありますか? CelebIdまたはCompanyIDを保存していますか? – RKh
@RPKメディア・リレーションは、企業または個人(セレブリティ)の両方で実行できる役割です。メディア関係は、ロールテーブルのRole_Nameに格納されます。 – Kenh