0

我有一个非常基本的任务跟踪应用程序。它目前有许多任务,并且随着任务的完成,进度会更新,从 0 到 100%。

问题是,这些数据都是非常短暂的,我想在任务的顶部添加报告,比如:

  • 两个日期之间添加的任务数
  • 两个日期之间完成的任务数
  • 两个日期之间的工作量(所以这是针对任务的总工作量,除以 100 并乘以完成百分比的变化)

等等。

您如何及时冻结数据以允许此类报告?

这些是我到目前为止想到的想法:

想法 1. 永远不要更改任务定义,而是添加一个“TaskProgress”表,其中包含任务进度的粒度更新 - 然后您可以“总结它们”以获取当前状态或获取两个日期之间的记录看看这两个日期之间取得了多少进展。好的一面是,这将在报告要求的合理变化中存活下来,缺点是获得任务的当前进度将需要更多的查询工作。

想法2.创建一个表来存储进度变化。每次更新任务时,还要添加一条记录,其中包含由更改引起的计算出的班次。然后,报告只是选择所需日期之间的记录并将它们汇总的情况。好的一面是,这不会对现有功能产生很大影响,也不会造成太多的查询工作,缺点是如果该表不包含您想要添加到报告中的信息,您将不得不更改它.

想法 3。想法 3 将根据想法 1 创建“TaskProgress”表,但仍保持针对任务的总当前进度。这确实意味着任务进度项的总和再次作为总计存储在任务本身上,但是读取这些值比计算它们更快,并且它为以后更改报告提供了更大的灵活性。

非常欢迎对这些想法或更好的建议提出任何意见。

4

1 回答 1

0

我不确定我是否理解您的想法,但如果问题在于能够报告瞬态数据,那么为什么不使用数据库的副本呢?出于性能原因,我们通常会报告副本,但这会解决您的问题。备份数据库,然后将其还原到另一个数据库,进行报告,然后删除数据库。

于 2010-08-17T12:43:31.440 回答