gpt4 book ai didi

sql - MS Access 数据库中的最短路径

转载 作者:行者123 更新时间:2023-12-01 03:06:07 26 4
gpt4 key购买 nike

我必须为一家德国公司制作一个数据库,我遇到了一个复杂的问题,我无法完全用 SQL 解决,所以我不能直接在 Access 中打印它。

我需要在 MS Access 中以最短的方式报告...

例如,我有一个包含火车站的列表和一个直接连接到这些车站的列表:

>Table 1                      Table 2
>+--+---------------+-----+ +------+------+
>|ID|Station |aCity| |StaID1|StaID2|
>+--+---------------+-----+ +------+------+
>|01|Dounat Plains |true | | 01| 03|
>+--+---------------+-----+ +------+------+
>|02|Vanila Lake |false| | 03| 02|
>+--+---------------+-----+ +------+------+
>|03|Spiral Mountain|false| | 05| 01|
>+--+---------------+-----+ +------+------+
>|04|Gruntys Lair |false| | 04| 05|
>+--+---------------+-----+ +------+------+
>|05|New Donk City |true | | | |
>+--+---------------+-----+ +------+------+

现在我必须创造一些东西,女巫打印每一个“非城市”,它如何与一个城市以及它需要到达那里的每个车站相连。

我想到了这样的事情:
>+---------------+-----------------------------------------------------+  
>|Station |Steps |
>+---------------+-----------------------------------------------------+
>|Vanila Lake |Conection over "Spiral Mountain" with "Dounat Plains"|
>+---------------+-----------------------------------------------------+
>|Spiral Mountain|Conection with "Dounat Plains" |
>+---------------+-----------------------------------------------------+
>|Gruntys Lair |Conection with "New Donk City" |
>+---------------+-----------------------------------------------------+

如果它更简单:每个城市都与其他城市相连,每个“非城市”都只与一个城市相连,但中间有台阶。

我想到了链表之类的东西,但我只找到了如何使用数字,例如从 1 到 10 并以 2、3、4、5 等为步骤,以及如何处理它们,但从来没有,如何创建一个,具有表 2 中的特定连接。

现在我被卡住了,这不好,因为我必须在 7 周内完成,而且在我完成这个问题后我还有更多的事情要做。

- 更新 ——

我尝试了一些不同的 SQL 方法来解决这个问题,我敢打赌,它们会起作用,但 Access 太有限了,所以我的问题似乎无法在 MS Access 中管理。

但是我仍然需要在 Access 中提供包含这些信息的报告。有没有办法编写脚本并在 Access 报告中实现它?

最佳答案

这是一个远没有那么容易解决的问题......

您本质上要寻找的是一种算法,可以找到从每个非城市到城市的(最短)路径。
这是一个图形问题,因此最好使用图形数据库(例如 neo4j )来解决。

尽管这远非有效,但使用 SQL 实现并不容易,我不确定 Access-SQL 是否能够解决这个问题。

我建议阅读 Dijkstra's algorithm以及类似这个问题的类似方法,例如:SQL for shortest path problems

如果您可以在 MS-Access 应用程序中使用 VBA,您可以尝试在 VBA 中而不是 SQL 中实现这样的算法。

关于sql - MS Access 数据库中的最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57406717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com