这有点复杂。我会努力尽可能清楚。
这是一份工作计划。我们估计任务所需的总时间,比如100小时,并将其分解为月份。例如,3月份应该30小时,4月份20小时,5月份50小时。每个月之后,计划可以更改。我需要在DB中保留计划的更新版本和历史版本,以查看趋势并预测未来。
每项任务的剩余小时数之和很重要(要绘制故障图表,您可能已经看到我们正在使用scrum模型)。我不确定如何设计它是最灵活的。我计划使用Access 2003.如果记录数量增长太快,我对性能有点担心。
对我有什么建议吗?非常感谢。
答案 0 :(得分: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
。所以第一组都有GroupID
== 1,下一组== 2,依此类推。如果您被问到计数查询问题而不是日期查询问题,这可能更容易进行历史选择;例如“给我第三个周期估计”,而不是“给我6月份做的估计”。
顺便说一句,我通常使用datetime
来表示所有与日期和时间相关的数据,而不是将其分为年,月等。所以我只需要规范化一些选择标准,而不是摆弄类型转换为每一行。
答案 1 :(得分:0)
TaskMaster
tid
datecreated
estimatehours
TaskBreak
tid
dateupdate
month
hours
这里,在TaskBreak(tid,dateupdate)中是主键。当您更新任务时,在TaskBreak表中创建一个新条目。因此,这样您将拥有更新版本和任务的原始版本
如果您仅在一个月内更新一次任务计划,那么您只能将月份和年份存储在dateupdate
表的TaskBreak
列中。