次の例のように、値テーブル (値) の列を knownValues テーブルへの外部キーとして参照し、必要に応じて NULL にすることはできますか。
表: 値
product type value freevalue
0 1 NULL 100
1 2 NULL 25
3 3 1 NULL
表: 種類
id name prefix
0 length cm
1 weight kg
2 fruit NULL
テーブル: knownValues
id Type name
0 2 banana
注: 表内の型はvalues
、knownValues
もちろんtypes
表に参照されます。
ベストアンサー1
外部キーの NULL は完全に許容されます。外部キーの NULL の処理は難しいですが、そのような列を NOT NULL に変更し、参照テーブルにダミー (「N/A」、「不明」、「値なし」など) レコードを挿入するという意味ではありません。
外部キーで NULL を使用する場合、多くの場合、INNER JOIN ではなく LEFT/RIGHT JOIN を使用する必要があります。