1

我的 ERP 数据库中没有销售订单的历史信息。我有一个包含销售订单的表格。销售订单一经批准,即转化为发票,并删除记录的销售订单。

我可以在 ERP 中编写一个仅包含我需要的信息的历史表。我认为这是应该由数据仓库解决的问题(也是出于个人兴趣)。

我想看看截至日期我有多少销售订单。例如,我想查看按月平均有 X 笔总价值为 XXX 的订单。

我的想法是在哪里添加列“Valid from”和“Until to”。从那里我被阻止了,我最初虽然在哪里使用 SCD,但据我所知,不可能在主键上这样做。

我是否需要创建一个新的事实表(就像我在 ERP 数据库中所做的那样)?我不想也对销售订单表中的插入触发器或删除触发器进行编程。我们在一天结束的时候清理销售订单表,当我们在晚上更新数据仓库时需要更新它。对于这种情况,我不需要考虑订单不会被批准并且我会存储不相关的记录。

4

1 回答 1

0

据我所知,您的数据模型不好。

案子

有一个销售订单表。此表中的记录不会被保留(例如状态发生变化或简单复制到“有序”表中)而是被删除。

这是第一个错误。

其次,你说你想听删除触发器。不幸的是,据我了解,一天中的每个时间都可能发生删除。因此,从销售订单表中收集数据的工作至少必须每分钟运行一次,如果审批速度很快的话。这也是一个值得商榷的设计决定。

方法

就个人而言,我不会从 DWH 开始。我将从一个简单的工作开始,它会在插入触发器出现时填充新的销售数据。这是因为增量检查会随着时间的推移变得昂贵。

然后这个表,如果它包含所有信息,就可以用于数据分析。

问题

但是您还需要确定取消订单时的流程。你怎么知道这些订单被删除是因为它们被取消而不是因为它们被批准?

当您对流程的步骤有了更清晰的概念时,在例如 DWH 中使用数据将变得更容易。但是,如果至少对于状态变化而言,事先没有很好地定义流程,那么即使是 DWH 也无济于事。

于 2016-09-14T15:48:38.247 回答