首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间线事件同步的数据模型

时间线事件同步的数据模型
EN

Stack Overflow用户
提问于 2016-08-26 16:16:16
回答 2查看 55关注 0票数 1

我正在寻找以下问题的数据模型方面的想法(以及正确的CS术语):

具有多行(A,B,C)的(水平)“时间线”包含“事件”(1,2,3)宽度在不同时间(绝对x位置或按延迟)的不同持续时间(宽度)。在之前的事件之后):

代码语言:javascript
复制
A 1111....222222
B   33333
------------------
T 0123456789ABCDEF

(这些行只对重叠/并行“事件”的图形表示感兴趣,因此它们对于数据模型可能不是必需的。)

事件持续时间可能会有所不同,影响整个计时:

代码语言:javascript
复制
A 11....222222
B   33333+3
------------------
T 0123456789ABCDEF

但是让事件2需要事件1和事件3来完成,所以时间应该是这样的:

代码语言:javascript
复制
A 11....   222222
B   33333+3
------------------
T 0123456789ABCDEF

(让我们忽略T=7的原始延迟现在丢失了。)

最初,我认为我必须有一些“弹性”同步元素,每行一个:

代码语言:javascript
复制
A 11....####222222
B   33333+3#
------------------
T 0123456789ABCDEF

因此,最初的问题是如何对两个不同“行”中的同步元素进行建模和同步。但是,如上所述,这只是一个图形/并行表示的问题。

相反,同步是一种条件,可以“附加”到事件2,修改或确定其开始。如果一个事件“有”一个条件,它将没有绝对或相对的开始时间。它的开始只能在“链接”事件(1和3)的末尾确定。

那么,给定一些具有可变持续时间和绝对开始时间或相对于另一个事件结束的延迟的事件(列表),如何对条件“事件1和事件3结束”进行建模以确定“事件2”的开始?

(我将用JavaScript制作原型,并最终用C/C++实现,所以提供的任何示例代码都不应该使用高级数据类型或库。)

EN

回答 2

Stack Overflow用户

发布于 2016-09-06 02:27:29

您需要的是一个我称之为TimeFrame的对象。该对象将具有durationlinktype属性,其中link可以是精确的时间,也可以是指向另一个TimeFrametype帐户的链接,用于某种link。例如,在已知时间开始的给定TimeFrame将以该时间作为其link属性,并且type将为TIME。链接到另一个TimeFrame的末尾的TimeFrame将以该另一个link作为其link属性,以START-END作为其type,依此类推。

使用linktype之间的组合,您还可以支持其他类型的链接,如START-STARTEND-STARTEND-END

更新

此外,为了在TimeFrame结束和下一个事件的开始之间留出一定的时间间隔,可以添加属性lag,它表示事件之间的任何延迟。因此,例如,如果tf1tf2TimeFrames,使得tf2必须在5结束后启动tf1时间单位,则tf2的属性将是link = tf1type = START-END、<代码>d35和<代码>d36。还要注意,lag可以是负的,这将把模型的表达能力扩展到广泛的关系范围。

票数 1
EN

Stack Overflow用户

发布于 2016-09-06 16:59:19

虽然@Leandro Caniglia很好地将我的问题重新表述为对象和属性,但本质上,我看到了两种选择:

  1. 需要在"condition“(开始/结束)处对整个"events”列表求值,以检查从属的"events“。
  2. 将“链接”添加到“父级”也会创建一个指向“子级”的链接(无需评估所有挂起事件的链接)。

另外:

link“2:1,3).

  • Analogous”属性需要是一个列表或数组才能包含多个引用(例如,链接属性start_me_on_condition stop_me_on_condition关联的2:1,3).

  • Analogous可能是理想的(请参阅Leandro的建议start_me_on_condition stop_me_on_condition,它需要扩展以支持多个独立延迟“2:1,3).

  • Analogous”可能比lag属性更实用。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39161539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档