如何在图形数据库中建模公共交通系统的时间安排



假设我想用图形数据库(例如neo4j(建模公共巴士运输服务。

这样的服务由设定的公交站,一组线路和一组与公交线相关的时间安排。

查询数据库应回答诸如最好的路线(例如,按时间或走路最小或更改的变化数量(从城市的某个点到另一个。

遵循最常见的指南公交式和线路成为每个具有适当属性的节点(id,每个站点的地理位置和地址等等(。

每条线都有标签startstop线路服务的开始和结束的边缘。随后的总线停止与其他边缘连接,具有某些属性(例如线路,两个站和其他距离之间的距离(。

如何在此类数据库中建模时间安排?将它们建模为公交车站的钥匙值属性(或连接它们的边缘(的值是包含时间的数组?

听起来您的主要关注点是如何为每行建模计划时间。如果我正确理解您的担忧,那是因为每条线可以在两个公共汽车站之间每天有多次班次。

可以将所有计划时间放入数组中并将其存储为公交车站的属性。但是,除了公共汽车以外,很难扩展到其他运输选择。因此,在更可扩展的图形模型中,顶点可能是一个地方,边缘将是两个地方之间的运输(不限于总线(。运输选择的任何属性都可以是边缘的属性,包括时间表。

但让我们以公共汽车为例。因此,假设您在相同的两个公共汽车站(A和B(之间有M线,对于每条线路,您希望每天安排n个轮班(实际上N对于不同的行可能有所不同,但这并不重要(。然后,您可以在A和A之间创建M*n边缘。在这种情况下,每个边缘只有一个属性作为其计划时间。然后,您可以使用排名来区分边缘。一种替代方法是仅创建M边缘并将n位定义为每个边缘上的属性。在这种情况下,您将每个边缘的N属性作为计划时间。显然,前者更友好地查询。

最新更新