我正在尝试构建一个简单的路线查找器,该路线查找器计算并存储路线从 A 到 B 所经过的节点。我有两个表;一个由阶段(节点及其“下一个可能的跃点”)和一个 route_stage 表组成,该表应该能够存储使用唯一路由 ID 计算的每个路由。
舞台表
STAGEID START_STATION NEXT_HOP_STATION LENGTH
---------- ------------------------------ ------------------------------ ----------
1 Penzance Plymouth 78
2 Plymouth Exeter 44.8
3 Exeter Taunton 36.6
4 Exeter Salisbury 96.6
5 Salisbury Basingstoke 38.2
6 Basingstoke Southampton 52.7
7 Southampton Poole 37
8 Poole Weymouth 31.6
9 Taunton Reading 99.5
10 Reading Basingstoke 18
11 Reading Paddington 40.9
12 Taunton Bristol 48.8
13 Bristol Bath 13
14 Bath Swindon 37.5
15 Swindon Reading 39.8
Route_Stage 表
ROUTEID STAGEID
---------- ----------
1 1
1 2
1 3
1 9
1 11
2 6
2 7
2 8
2 10
2 11
对于上述情况,ID 为 1 的路线从 Penzance 开始,经过 Plymouth、Exeter、Taunton、Reading 并在 Paddington 终止。理想情况下,我想创建一个存储过程,该过程采用起点和终点站的入口参数,以便内部的代码能够计算出合适的路线。
我看过递归,但有点迷茫,因为我不确定当一个节点有多个潜在路径时代码应该如何反应?它怎么知道哪一个是正确的下去。
任何帮助是极大的赞赏。谢谢!