是否首选使用sql事件的结束时间或持续时间?

时间:2011-01-28 22:19:55

标签: sql events database-design duration

我的直觉告诉我,开始时间和结束时间一般比开始时间和持续时间要好,但我想知道不同的方法是否有一些具体的优点或缺点。

我看到的strttime和endtime的优势在于,如果你想在特定时间段内调用所有活动的活动,你不必在那个时间段之外看。

(这是针对在初始输入后不太可能发生很大变化且与特定时间相关的事件,如果这会产生影响的话)

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:4)

这完全取决于您想要对数据做什么。如您所说,如果存储它,您可以按结束时间进行过滤。另一方面,如果你想找到“所有持续超过一小时的事件”,那么持续时间将是最有用的。

当然,如果需要,您可以随时存储两者。

重要的是:你知道你将如何使用这些数据吗?

编辑:只是为了添加更多的肉,根据你正在使用的数据库,你可能希望考虑使用一个视图:只存储(比方说)开始时间和持续时间,但有一个暴露开始的视图时间,持续时间计算结束时间。如果需要查询所有三列(无论是在一起还是单独),您将需要检查数据库对索引视图列的索引所支持的内容。这具有方便和清晰的优点,但没有数据冗余的缺点(必须保持“备用”列与其他两个同步)。另一方面,它更复杂,需要您的数据库提供更多支持。

答案 2 :(得分:2)

结束 - 开始=持续时间。
有人可能会说你甚至可以使用End和Duration,所以任何组合都没有区别。

除了您需要的小事the column included to filter on it之外,还包括

  • 持续时间:如果您需要按执行时间过滤
  • 开始+结束:如果您需要捕获两者在时间范围内开始和结束的事件
相关问题