0

我正在编写一个程序来跟踪任务的持续时间。在执行其他任务时,某些任务可能会暂停,并且该时间不应计算在内。我对设计有两个想法,我需要推动正确的方向,或者可能是更好的方法。

我想记住一些未来的报告,例如相同类型任务的平均持续时间,添加同一天或同一月发生的事件的持续时间等。

第一的。

每个事件一行。开始时间和结束时间是表中的 2 列。结束时间保持空白,直到记录结束时间。然后通过将开始时间减去结束时间来计算持续时间。

--------------------------------------
|EventId  | Start Time  |  End Time  |
--------------------------------------
|1        | 9:30 am     |  10:00 am  |
--------------------------------------
|2        |10:00 am     |  11:00 am  |
--------------------------------------

第二。每个事件的两行和另一列中的条目类型。没有字段保持为空,持续时间是通过连接事件的两个条目并减去开始条目的时间戳到结束条目来计算的。

-----------------------------------------------
|EventId  | Start Time  |  Type      |  GUID  |
-----------------------------------------------
|1        | 9:30 am     |     S      |  XX..X |
-----------------------------------------------
|1        |10:00 am     |     E      |  YY..Y |
-----------------------------------------------
4

2 回答 2

1

选项 1 不允许您暂停任务并且不将暂停时间计为总时间的一部分。如果这是一个明确的要求,我认为您不能使用选项 1。否则,我更喜欢选项 1,因为它既好又简单。

如果您需要跟踪每个任务的“事件”,例如开始、暂停、取消暂停和停止,那么我建议使用两个表。一个用于任务,另一个用于 TaskEvents(具有 Task.Id 的外键)。此选项将为您提供更多控制权,但准确报告可能需要更多工作。

于 2013-11-06T01:48:13.933 回答
1

如果您只需要记录开始和结束时间,我会选择第一个选项。但是,如果您认为将来可能需要记录更多事件类型(即 Pause_start、Pause_end 等),那么我会选择第二个选项。

于 2013-11-06T01:35:13.510 回答