我在我的tableLegs中循环查找公共汽车时刻表时遇到了一个问题,以找到乘客从a到b需要乘坐的腿的数组,例如乘客希望从legIDLocID开始并行驶到cLocID,我想要组成该行程的腿的数组。(pLegID01),希望这很容易理解。
台词

=============================================
LegID    startLocID   endLocID   departTime
 01          a           e        9:00
 02          e           i        10:00
 03          i           m        11:00
 04          i           q        11:00

桌脚站
=========================================
LegID     stopNo    LocID     TripTime
  01         1         a       0 min
  01         2         b       20 min
  01         3         c       30 min
  01         4         d       40 min
  01         5         e       60 min
  02         1         e       0 min
  02         2         f       20 min
  02         3         g       30 min
  02         4         h       40 min
  02         5         i       60 min
  03         1         i       0 min
  03         2         j       20 min
  03         3         k       30 min
  03         4         l       40 min
  03         5         m       60 min
  04         1         i       0 min
  04         2         n       20 min
  04         3         o       30 min
  04         4         p       40 min
  04         5         q       60 min

为了给你一个我在这里所要达到的目标的基础,这是一个巴士网站,每个旅程都是由不同的腿组成的。

最佳答案

此任务称为在图中搜索最短路径。有一个Dijkstra algorithm的实现可以用mysql存储过程来解决这个问题。
但这可能需要您稍微更改一下表结构,因为图形只使用两种类型的实体:节点和边。所以你应该把你的腿分解成边,然后在得到边上的最短路径后再把腿推回来。

09-29 21:32