mysql - mySQL中的外键和NULL

标签 mysql sql database-design foreign-keys database-relations

我能否在我的值表(值)中有一列作为 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

表:已知值

id    Type     name
0     2        banana 

注意:valuesknownValues 表中的类型当然会引用到 types 表中。

最佳答案

外键中的 NULL 是完全可以接受的。处理外键中的 NULL 很棘手,但这并不意味着您将此类列更改为 NOT NULL 并在引用表中插入虚拟(“N/A”、“Unknown”、“No Value”等)记录。

在外键中使用 NULL 通常需要您使用 LEFT/RIGHT JOIN 而不是 INNER JOIN。

关于mysql - mySQL中的外键和NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2802545/

相关文章:

php - 如何在插入 mysql 之前将 now() 转换为 GMT +8

mysql - 在 MySQL 中以特定用户身份进行身份验证

SQL Server更改现有数据库的数据和日志路径

sql - Oracle:通过增加现有值来更新数据行

postgresql - 具有大量列的唯一索引

mysql - 计划计划数据库结构

mysql - 如何安全修改大量MySQL列注释?

java - 尝试将学生添加到数据库时出错

python - 如何在sqlobject中执行 'select in'操作

database - 在数据库中表示用户角色的更好方法