TL;DR:如何根据移动规则协调的不良移动数据构建一致、正确的视图?
大家好 :) 我正在构建一个数据库,其中数据必须进行转换,在可能的情况下进行协调并大量丰富。
(顺便说一句,如果你知道一本关于这个一般主题的好书,请发帖!)
在我的特殊情况下,原始数据来自两个表。
以下是原始表上发生的情况:
- 未格式化的数据(待格式化:电话号码、电子邮件转小写等)
- 缺失数据:部分字段缺失,未来可能会被丰富
- 更新数据:部分行已更新
- 新数据:插入新行
对账部分使用的字段(ID、邮政地址等)可能是部分的、在表中缺失或在另一个表中找不到。使用了几个协调规则。都可以用SQL来表达。其中一些正在使用GROUP BY
s (这会阻止视图可更新)。
约束是:
- 可以更新基础表。新数据最多必须在 72 小时后跟上。
- 新数据必须是可查询的形式(表或视图或物化视图),并具有可接受的性能。
- 新数据中的行必须随着时间的推移保持一致,以便人们可以对它们进行注释(以丰富它们,将它们标记为已发送到其他地方等)
- 必须手动丰富新数据中的某些行。
- 新数据中的行必须包含它们被协调的时间(以及更新时间,如果它们被更新)
- 可以更新对账方法。新数据最多必须在 72 小时后跟上。
我无法决定是使用视图还是使用使用存储过程更新的表。
视图可以很好地处理原始数据的变化和协调规则中的更新。但它不支持新行的注释。
使用存储过程更新的表可以很好地处理这个问题,但在更改协调规则或更新原始数据时需要进行一些复杂的处理。
我在想也许使用一个视图并在旁边有一个表,表的主键是新数据的一些稳定字段的哈希。
这些工具是:Oracle 10g(加上 Java,如果需要)
对不起,文字墙。
问题是:你会怎么做?