空数据问题 - 数据层还是DAL?

时间:2010-03-14 13:39:41

标签: database-design data-warehouse data-access-layer etl architecture

我现在正在设计新的应用程序,并提出了很多想法。我从仓库中消耗了大量数据,实体有很多基于字典的值(货币,国家,税收 - 无论数据) - 维度。虽然不会有空值,但我无法保证。所以我在想:

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

但也许我应该思考:

  • 按原样导入数据
  • 让DAL使用空记录模式
  • 进行思考
  • 仍然不关心代码,因为业务层将具有DAL所需的功能。

我认为这更像是一种方法,但也许我在这里缺少一些重要的东西......你怎么看?我明白了吗?请不要将它与空记录问题混淆。我确实使用emptyCustomer一直认为和其他默认值一样。

1 个答案:

答案 0 :(得分:1)

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

如果您碰巧找到空值,请将问题传递给数据仓库团队进行处理。该仓库应该充当参考数据存储并为多个客户端应用程序提供服务 - 如果每个应用程序设计者必须决定如何处理未知值,它们最终将基于相同的数据集生成不同的结果(报告)。 / p>