如何在数据库中建模“相对”时间?

时间:2011-09-08 01:39:08

标签: database-design time data-modeling relative

澄清:我不是通过使用时间戳和当前时间来计算友好次(例如,“8秒前”)。

我需要在我的数据模型中创建一个事件时间轴,但这些事件只相对于彼此。例如,我有事件A,B和C.它们按顺序发生,因此可能是B在A之后发生20 ,并且C发生在20 在B.之后。

我不关心时间单位。为了我的目的,没有时间,只有相对论。

我打算将其建模为链接列表,其中每个事件都是一个节点:

事件

  • id
  • 姓名
  • prev_event
  • next_event

这是建模相关事件的最有效方式吗?

2 个答案:

答案 0 :(得分:0)

我认为您不需要链接到上一个和下一个事件,为什么不只是按时间戳使用时间戳和顺序?

如果您可以拥有多个同时发生的事件时间线,那么您将使用某种标识符来标识时间轴(int,guid,等等)以及与时间戳相关的密钥。除非你需要用一个数字来引用它,否则甚至不需要id。

这样的事情:

<强>事件

  • TimeLineID(键)
  • datetime(key)
  • 名称

答案 1 :(得分:0)

计算机记录的所有时间相对时间,名义上相对于纪元为偏差(以毫秒为单位)。通常这个纪元是1970/01/01 as is the case with Unix的偏移。

如果您存储正常的每日timestamp值,则事件之间已经有相对时间(如果它们都是连续的),您只需要减去它们以获得间隔您正在调用相对次,但它们实际上是间隔

你可以使用你需要使用的任何分辨率,milliseconds是大多数东西使用的,如果你以亚毫秒分辨率采样,你会使用nanoseconds