中間テーブルの複合主キーの属性がNULLであることは問題ありませんか?私は3者関係を持ち、2つのエンティティにはサブクラスがあります。サブクラスには独自の一次キーがあります。中間テーブルの主キーは、サブクラスの主キー(下の図を参照)で構成されているため、属性の一部がnullになることがあります。3者関係のサブクラスのマッピング
私は中間テーブルに注文しました。これらの属性がnullの場合があります。たとえば、顧客がレストランのメニューから何かを注文した後、ケータリング注文IDはnullになります。このようにするのは大丈夫ですか?それがどうやってやらなければならないのでしょうか?
中間オーダー()テーブルの場合、メニューサブクラステーブルのレストランとケータリングメニューから2つの主キーを入れ替えてください。したがって、これらの2つのキーをスーパークラスメニューのプライマリキーに置き換え、3つの外部キーを使用してそのプライマリキーを3つのテーブルに戻します。 – Rubiks
'orders'は' customer_id'と 'menu_id'の外部キーを持っていなければなりません。それぞれ、' customers'と 'menus'の1列の主キーを参照しています。レストランとケータリングメニューを別々のテーブルに分割する必要がある場合(これについて非常に注意深く考えてください - 一つのテーブルの疎なデータは世界で最悪のものではありません)、 'menus'は' restaurant_menu_id'と 'catering_menu_id'外部キー。いずれかがヌルになることがあります。チェック制約を使用して、少なくとも1つに値があることを確認できます。 – dmfay