(对不起标题的模糊性;如果不写书,我怎么想不出如何真正说出我想要的东西。)
因此,在我们的应用中,我们允许用户更改关键数据。我记录了在日志架构中谁改变了什么,但现在问题出现了:我如何在报告的视图中最好地表示这些数据?
示例将有所帮助:客户的数据(例如,账单地址)在2009年4月4日发生了变化。让我们说今天,2009年10月19日,我想看到他们2009年的所有订单,在变更之前和之后。我还希望每个订单显示截至订单日期的当前帐单地址。
所以我有4张桌子:
订单(带订单数据) 客户(包含当前客户数据) CustomerOrders(链接两者) CustomerChange(包含更改日期,更改者(员工ID),旧帐单地址是什么,以及更改内容)
如何最好地构建报告使用的视图,以便返回正确的地址?或者通过创建报告数据库并在那里对数据进行非规范化来更好地服务,这是报告组请求的内容吗?
答案 0 :(得分:0)
如果这是您要做的唯一事情,则无需单独的数据库。您可以创建一个非规范化的表/多维数据集...并从中填充和检索。如果您的数据量很大,请在此表中应用适当的索引。
答案 1 :(得分:0)
我个人会设计这个,所以你不需要报告的变更表。在没有存储在表中的订单日期的所有数据的情况下存储订单是不好的做法。您从地址表中查找地址并将其与订单一起存储(部分号码和公司名称以及随时间变化的任何内容都相同。)您永远不会通过加入客户,地址,部件号,价格表等获得订单信息。
审核表更多的是用于修复错误更改或查找创建错误更改的人而不是报告。