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=无,等等。您的数据仓库设计师(可能)已经考虑过了 如果碰巧发现空值,请将问题传递给数据仓库团队处理。仓库应该充当参考数据存储并服务于多个客户端应用程序——如果每个应用程序设计者必须决定如何处理未知值,那么他们最终将基于相同的数据集生成不同的结果(报告)