0

这有点复杂。我会尽量说清楚。

这是一个工作计划。我们估计一项任务所需的总时间,比如 100 小时,并将其分解为一个月的时间段。例如,30 小时应在 3 月完成,20 小时应在 4 月完成,50 小时应在 5 月完成。每个月之后,可以更改计划。我需要在数据库中保留计划的更新版本和历史版本,以查看趋势并预测未来。

每个任务的剩余时间总和很重要(要绘制分解图,您可能已经看到我们正在使用 scrum 模型)。我不确定如何将其设计为最灵活。而且我打算使用Access 2003。如果记录数增长太快,我对性能有点担心。

对我有什么建议吗?非常感谢。

4

2 回答 2

0
TaskMaster
   tid
   datecreated
   estimatehours

TaskBreak
   tid
   dateupdate
   month
   hours

在这里,TaskBreak (tid,dateupdate) 是主键。当您更新任务时间时,请在 TaskBreak 表中创建一个新条目。因此,这样您将拥有任务的更新版本和原始版本。
如果您只在一个月内更新一次任务计划,那么您可以只将月份和年份存储在表格的dateupdate列中TaskBreak

于 2010-07-08T05:54:28.853 回答
0

我会将每组每月预测作为一组行来设计。要支持历史数据,请添加“创建日期”字段。所以类似(这是 T-SQL 语法,我很久以前就放弃了 Access):

CREATE TABLE dbo.TaskEstimates
(
    DateCreated         datetime    NOT NULL,
    EstimateYearMonth   datetime    NOT NULL,
    HoursRequired       decimal     NOT NULL,

    CONSTRAINT PK_TaskEstimates PRIMARY KEY CLUSTERED
    (
        DateCreated     ASC,
        EstimateMonth   ASC
    )
);

DateCreated例如,对于今天输入的估计集的所有成员,该字段将是相同的。该EstimateYearMonth字段仅包含年和月(日 = 1,时间部分 = 0:00:00.000)。

然后,聚合函数和分组标准的组合允许检索您需要的任何数据组合。

除了字段之外,或者代替DateCreated字段,您还可以使用GroupID为每个集合递增的 a。所以第一组都有GroupID== 1,下一组 == 2,依此类推。如果您被问到计数查询问题而不是过时查询问题,这可能更容易进行历史选择;例如“给我第三个周期的估计”而不是“给我在六月完成的估计”。

顺便说一句,我通常datetime用于所有与日期和时间相关的数据,而不是将其分成年、月等,因此我只需要规范化一些选择标准,而不是摆弄每一行的类型转换。

于 2010-07-08T03:52:17.380 回答