【发布时间】:2010-10-13 23:28:47
【问题描述】:
我在我的关系 SQL 数据库中创建 FK 关系时遇到了困难,在工作中进行了简短讨论后,我们意识到我们有最有可能导致问题的可空列。我一直认为 NULL 意味着未分配、未指定、空白等,并且真的从未见过这样的问题。
与我交谈的其他开发人员认为,如果 2 个实体之间确实存在关系,那么您必须创建一个表来连接来自这两个实体的数据...
至少对我来说似乎很直观,对于包含来自另一个表的 ID 的列,如果该列不为空,那么它必须具有来自另一个表的 ID,但如果它是 NULL,那么就是好的,继续前进。这似乎与某些人的说法和建议相矛盾。
处理两个表之间可能存在关系的情况的最佳实践或正确方法是什么,如果指定了一个值,那么它必须在另一个表中...
【问题讨论】:
-
一个表值——基础或查询(子)表达式——表示每个谓词(语句模板)的关系(船)/关联,它将行映射到命题(语句)。提出真实命题的行进入表格。 DBA 给出基本谓词;查询的表达式确定其结果谓词。 “表之间的关系 [原文如此]”是 FK 约束。约束是为了完整性——所以 DBMS 拒绝无效状态。以声明或命令的方式执行它们——或者不执行。他们不需要记录或查询。但是 SQL 对包含 null 的约束标识符的支持很差。
标签: sql database-design null