代码之家  ›  专栏  ›  技术社区  ›  Joe Phillips

设计项目投标估算工具[已结束]

  •  2
  • Joe Phillips  · 技术社区  · 16 年前

    该工具将用于为客户估算项目成本。这些不一定是软件项目。目前有一个Excel电子表格,其中包含多个类别,每个类别都有单独的任务。其中每一项都涉及某种权重或常数,并在确定最终投标估算中承担部分责任。这些任务中的每一个都有设置时间、设置成本、操作时间和成本等属性。目前,还没有严格定义的投标方法。

    对于每个新的投标,都会制作并修改一份电子表格,以最准确地描述我们认为项目的成本和时间。

    工具要求:

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

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

    任何想法都受到赞赏。

    PS:不知道该怎么标记。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Dave Swersky    16 年前

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

    我会将特定于出价的参数存储在另一个表中(即BidSettings或BidParameters)。通过Bids表的外键参考此表中的特定于出价参数,您就完成了。

        2
  •  1
  •   DavGarcia    16 年前

    为了跟踪不断变化的情况,一种方法是实现一个时态数据库来存储设置的完整历史数据。维基百科实际上拥有最多的 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。这样,您只保留更改内容的副本,而不是复制与每个出价相关的所有数据。