MySQLの外部キーとNULL 質問する

MySQLの外部キーとNULL 質問する

次の例のように、値テーブル (値) の列を 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 

注: 表内の型はvaluesknownValuesもちろんtypes表に参照されます。

ベストアンサー1

外部キーの NULL は完全に許容されます。外部キーの NULL の処理は難しいですが、そのような列を NOT NULL に変更し、参照テーブルにダミー (「N/A」、「不明」、「値なし」など) レコードを挿入するという意味ではありません。

外部キーで NULL を使用する場合、多くの場合、INNER JOIN ではなく LEFT/RIGHT JOIN を使用する必要があります。

おすすめ記事