2016-09-14 51 views
1

我的ERP数据库中没有关于销售订单的历史信息。 我有一张包含销售订单的表格。一旦销售订单获得批准,它将转换为发票并删除记录销售订单。Datawarehouse记录时间轴数

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

我想看看我到底有多少销售订单。例如,我希望看到按月计算的总价值XXX的平均X次订单。

我的想法是在哪里添加“有效期”和“截至到期”栏。 从那里我被封锁,我的初始虽然在哪里使用SCD,但据我所知,主键上无法做到这一点。

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

回答

0

对于我可以收集的内容,您将遭受不良数据模型的影响。

案例

有一个销售订单表。这个表格中的记录不会被保留(例如状态改变了,或者是一个简单的复制到一个“有序”的表格中),但是被删除了。

这是第一个错误。

其次,你说你不要想听取删除触发器。不幸的是,据我了解,删除可能发生在每天。因此,从销售订单表中收集数据的工作至少需要每分钟运行一次,如果批准可能发生得非常快。这也是一个值得怀疑的设计决定。

方法

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

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

问题

而且还需要识别过程中,当订单将被取消。您如何知道这些订单因为被取消而被删除,而不是因为它们被批准?

当你在这个过程的步骤中有一个更清晰的概念时,它将变得更容易使用这些数据。一个DWH。但即使是DWH,如果事先没有对状态变化进行定义,也不会有帮助。