Customers
 customer_id

Orders
 order_id
 customer_id fk

如果我有两个表,并且在Orders表中的Customer_id上定义了一个外键,通过允许它为NULL,我的意思是我可以拥有一个没有关联客户的订单.因此,可为空的外键的概念似乎与外键的目的不一致,外键的目的是强制执行此约束.

有没有一个简单的例子说明需要一个可以为空的外键?还是支持允许他们的论据?

推荐答案

想象一下,一张桌子上放着一个团队的待办事项.如果尚未将TODO分配给团队成员,则其user_idNULL.如果不是NULL,则它是users表的外键.

Database相关问答推荐

更新数据后,TableView停止按搜索栏进行筛选

如何使授权服务器与外部数据库保持同步?

UML 类图中关联的复杂规则

动态数据模型

H2 - 如何截断(truncate)所有表?

使用 SQLAlchemy Core 批量插入列表值

如何在 MS Access 中实现 SQL INTERSECT 和 MINUS 操作

Followers/following 关注者表数据库 struct

Spring Framework 中的默认隔离级别

如何禁用 Django 查询缓存?

寻找基于磁盘的类 redis 数据库

NoSql DB 和 OO Db 有什么区别?

从 XML 读取数据

应用程序用户应该是数据库用户吗?

Slick 3.0 在数据库驱动程序级别是reactive/asynchronous的吗?对于哪些数据库?

存储并仍然索引加密客户数据的最佳方式是什么?

表模块与域模型

xampp phpmyadmin,格式参数不正确

做或不做:将图像存储在数据库中

为什么 Rails 迁移在应用程序中定义外键而不在数据库中定义外键?