设计用于估算项目出价的工具

时间:2009-01-19 23:00:11

标签: database-design

此工具将用于估算客户的项目成本。这些不一定是软件项目。目前,有一个Excel电子表格,其中包含许多类别,每个类别都有各自的任务。这些中的每一个都具有某种权重或常数,并且在确定最终出价估算时负有部分责任。这些任务中的每一项都具有设置时间,设置成本,运营时间和成本等属性。目前没有严格定义的方法来提出出价。

对于每次新的出价,都会制作并修改电子表格的副本,以便最准确地描述我们认为项目的成本和时间。

工具要求:

  • 需要能够添加新的类别/任务
  • 需要能够保存出价并在必要时召回
  • 需要能够修改当前的权重/常数

目前我可以轻松设计一个数据库模式和一个可以处理这种情况的ASP.NET页面布局,如果不是因为你可以随时间改变权重/常数。我想(不是事实),一旦你保存出价,所有的常数/重量/成本应该以某种方式与它一起保存。这也带来了显示出价的问题,如果有90个版本的数据在运行,我将如何确定如何显示出价?

任何想法都表示赞赏。

PS:不知道如何标记这个。

2 个答案:

答案 0 :(得分:1)

如果您确实希望将其扩展为完整的应用程序,我认为您提出的解决方案很好。我同意您应该在每次出价时保存参数。这不是一个真正的问题,可以通过一个默认参数值的“基础”表来实现,该表可以按每个出价进行修改。

我会将特定于出价的参数存储在另一个表格中(即BidSettings或BidParameters。)请参阅此表格中特定于出价的参数,并使用Bids表格的外键完成。

答案 1 :(得分:1)

为了跟踪不断变化的条件,一种方法是实现时态数据库,以存储数据设置的完整历史记录。维基百科实际上是我读过的succinct explanation中最多的一个。

总结一下这篇文章,假设你有这些Bid和BitT表:

TABLE BidT
   uniqueidentifier Id,
   uniqueidentifier BidId,
   int Version,
   int WeightA,
   int WeightB,
   int WeightC

TABLE Bid
   uniqueidentifier Id,
   int BidNumber,
   ...

在此示例中,未更改或您不需要跟踪的数据将保留在Bid中。随着时间的推移需要跟踪的任何变化都会进入BidT,T后缀是针对Temporal的。这样,您只会保留更改内容的副本,而不会复制与每次出价相关的所有数据。