SQL - NULL 外键

标签 sql null foreign-keys

请看下面的数据库设计:

create table Person (id int identity, InvoiceID int not null) 
create table Invoice (id int identity, date datetime)

目前所有人都有一个invoiceIDInvoiceIDnot null .

我想扩展数据库,以便某些人没有 Invoice .最初的开发人员讨厌空值并且从不使用它们。我想保持一致,所以我想知道是否还有其他模式可以用来扩展数据库以满足此要求。如何在不使用空值的情况下解决这个问题?

请注意,以上两个表格仅供说明之用。它们不是实际的表。

最佳答案

NULL 是数据库和编程中一个非常重要的特性。它与零或任何其他值显着不同。它最常用于表示值的缺失(虽然它也可以表示未知的值,但很少用作解释)。如果有些人没有发票,那么您应该真正允许 NULL,因为它与您想要的 Schema 匹配

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

相关文章:

mysql - 外键和基本关系表

ruby-on-rails - 重命名Users表中的列时,获取:SQLite3::ConstraintException:FOREIGN KEY约束失败:DROP TABLE“users”

sql - Google bigquery 从日期中减去任意数量的工作日

mysql - 合并两个表而不重复

java - SQL 查询未在 java 中执行

c# - 无法处理 System.Data.SqlTypes.SqlNullValueException

C# 可空 : Make nullchecking dependent on another property/variable

NULL和整数之间的C类型转换

mysql - 使用 min(amount) 连接表不起作用

php - 如何从zf2中带有外键的表中获取数据?