は以下をモデル化するための最良の方法は何ですか...は「1対多」のモデリング質問
は、私は2つのオブジェクトがあるとします。Agency
とPublisher
を、両方ともEmployee
から1対nの関係を持っています。これは真の1対nの関係です。それぞれEmployee
はAgency
またはPublisher
の1つのみで動作します。さらに、1対nの関係を保持する スーパータイプ(たとえばEmployer
)を導入できないとします。
Agency
またはPublisher
のプライマリキー(すべてのプライマリキーがデータベース全体で一意の64ビットID)にリンクできる外部キーをEmployee
に配置することをお勧めします。しかし、今度は、Employee
に、Agency
かPublisher
の関係であるかどうかを示すことなく、双方向の関連付けをマップすることはできません。
私の他の選択肢は、2つのテーブルAgencyEmployee
とPublisherEmployee
を使用して、従来の1対nの双方向アソシエーションとしてリンクすることができます。
この状況では、どのようなベストプラクティスを検討しますか?
更新:このような短い時間で大きな反応をありがとう!以下の解決策はどう思いますか?Employee
のAgency
とPublisher
の両方の外部キー(agency_id
とpublisher_id
など)?
私はベストプラクティスとバッドシングの呼び出しに同意しますが、私は正規化の観点から、PK、EmployerID、EmployerTypeというEmployeeIDを持つ3番目のテーブルが良いと思います。 –
@Harper:それは正しいですが、実用的な観点からは、別の結合(および複数列の主キー)を意味します。 –