0

示例:具有可选 DateOfBirth 字段的 Employee 表可以规范化为两个表,一个专门用于保存具有已知出生日期的员工的 DateOfBirth 字段。但是这并没有增加 DateOfBirth 表中缺少行的语义含义,并且当您查询员工时,您几乎肯定需要将那些缺失的行外部连接回空值。

4

1 回答 1

1

您在这里谈论的是两个完全不同的概念。一个与规范化有关,一个与查询结果有关。在查询结果中包含大量空值是完全可以接受的,并且通常是可取的,以表示缺失值。表列中有大量空值表示设计问题。通常,如果您发现一个表包含具有大量空值的列,则该表是非规范化的。这对于报告数据库或仓库类型数据库可能没问题。但是,对于生产数据,您通常希望避免这种情况。

于 2012-06-16T10:43:23.643 回答