SQL Serverのデータベース構造には、注文に関するさまざまな情報を必要とする3種類の製品があります。だから、私は1つ作成しCustomers
、テーブルと三つの異なる受注テーブルを:OrdersForProductAs
、OrdersForProductBs
、OrdersForProductCs
。すべての注文表には、1対多の関係がありCustomers
ます。
Payments
支払いの詳細を内部に保持する別のテーブルもあります。しかし、ここでそれをどのように構成するかについて疑問があります。
複数の製品タイプがあり、顧客が複数の製品を同時に注文する可能性があるため、これら3つの注文テーブルをPayments
テーブルに関連付ける必要があります。
もう1つの問題は、顧客が1種類の製品のみを注文する可能性があることです。したがって、Payments
テーブルのFK列はである必要がありますnullable
。
私の質問は、これらのnullable
FKカラムが長期的には頭痛の種になるかどうかです。一般的に、テーブルにNULL入力可能FK列を設定することは悪い習慣と見なされますか?