Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database design 空数据问题-数据层还是DAL?_Database Design_Data Warehouse_Data Access Layer_Etl_Architecture - Fatal编程技术网

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

Database design 空数据问题-数据层还是DAL?,database-design,data-warehouse,data-access-layer,etl,architecture,Database Design,Data Warehouse,Data Access Layer,Etl,Architecture,我现在正在设计新的应用程序,并仔细考虑了以下问题。我从仓库中消耗了大量数据,实体有很多基于字典的值(货币、国家、税收等数据)-维度。我不能保证不会有空值。所以我想: 在每个字典中使用特殊的keyID-ie.-1创建一个空值 ETL(SSI)是否做了正确的工作,并在需要的地方插入-1 让DAL知道-1是特殊的(静态常量) 不要在代码中检查字典条目是否为空,因为它们总是有一个值 但也许我应该想想: 按原样导入数据 让DAL使用空记录模式进行思考 仍然不关心代码,因为业务层将从DAL获得它需要的

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

  • 在每个字典中使用特殊的keyID-ie.-1创建一个空值
  • ETL(SSI)是否做了正确的工作,并在需要的地方插入-1
  • 让DAL知道-1是特殊的(静态常量)
  • 不要在代码中检查字典条目是否为空,因为它们总是有一个值
但也许我应该想想:

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

我认为这更像是一种方法,但也许我错过了一些重要的东西。。。你怎么认为?我明白了吗?请不要将其与空记录问题混淆。我确实一直使用emptyCustomer think和其他默认设置。

使用数据分析工具并检查这些维度。通常,维度表中不应该有空值。还有一种常见的“特殊”维度行,如:0=未知,-1=无,等等。您的数据仓库设计师(可能)已经考虑过了


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

使用数据分析工具并检查这些维度。通常,维度表中不应该有空值。还有一种常见的“特殊”维度行,如:0=未知,-1=无,等等。您的数据仓库设计师(可能)已经考虑过了

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