是否可以在我的值表(值)中将一列引用为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表中。
values
knownValues
types
外键中的NULL是完全可以接受的。处理外键中的NULL非常棘手,但这并不意味着您将此类列更改为NOT NULL并在引用表中插入伪记录(“ N / A”,“Unknown”,“ No Value”等)。
在外键中使用NULL通常需要您使用LEFT / RIGHT JOIN而不是INNER JOIN。