1

我现在正在设计新的应用程序,并对以下问题进行了深思熟虑。我从仓库中消耗了大量数据,实体有很多基于字典的值(货币、国家、税收等数据) - 维度。我不能保证不会有空值。所以我在想:

  • 在每个具有特殊 keyID 的字典中创建一个空值 - 即。-1
  • 做ETL(ssis)做正确的事情并在需要的地方插入-1
  • 让 DAL 知道 -1 是特殊的(静态 const 不管什么)
  • 不要在代码中检查字典条目是否为空,因为它们总是有一个值

但也许我应该想:

  • 按原样导入数据
  • 让 DAL 使用空记录模式进行思考
  • 仍然不在乎代码,因为业务层将从 DAL 获得它需要的东西。

我认为这更像是一种方法,但也许我在这里遗漏了一些重要的东西……您怎么看?我清楚了吗?请不要将其与空记录问题混淆。我确实一直在使用 emptyCustomer 思考和其他默认值。

4

1 回答 1

1

使用数据分析工具并检查这些维度。通常,维度表中不应有空值。具有“特殊”维度行也很常见,例如:0=未知、-1= 无等。您的数据仓库设计人员(可能)已经处理了这一点。

如果您碰巧发现空值,请将问题传递给数据仓库团队来处理。仓库应该充当参考数据存储并服务于多个客户端应用程序——如果每个应用程序设计人员都必须决定如何处理未知值,他们最终将基于相同的数据集生成不同的结果(报告)。

于 2010-03-14T15:27:22.473 回答