Loading

第一次结对作业-地铁查询系统逻辑实现思路和设计思想

在地铁查询系统中,我们先理清一下逻辑思路和设计思想,这样有助于我们项目的开发:

首先看功能,我们核心的功能当然就是地铁查询,在搜索框中输入起始站和终点站,点击查询,能够得到:

历经的站点个数,两点间的最有效线路,换乘的站点特别标识出来。

 数据库设计:

1.方案一

我们需要两张数据表,一张基础表,一张换乘表,基础表中包括所有站点的信息,换乘表中包括换乘站的信息,换乘表由基础表生成,是动态的。

基础表的设计:

 进阶版:

基本逻辑:

1.得到从输入框中获得的信息:起始站和终点站

2.检查起始站和终点站是否在一条线路上:

  .1若两站在同一线路上,直接从数据库基础表中查询出两站的直接线路并输出。

  .2若两站不在同一线路,调用最短路径算法。

 2.方案二

我们可以换一种方式,我们只需要一张总表。这种表结构能给使用SQL语句递归实现查询提供方便,

我们需要一个自增的唯一id,站名,下一站名,线路名,方向,同时至少同一站要存两遍,对应正反两个方向。

 

 基本逻辑:

直接在数据库层面利用递归实现最短路径

 

实际上,核心算法其实是最短路径算法,又复习一下数据结构,发觉自己数据结构和算法需要再深入研究。

我们核心使用的算法可以选择迪杰斯特拉算法或者弗洛伊德算法,或者用最基础的广度优先搜索。

posted @ 2023-03-14 21:46  冰稀饭Aurora  阅读(31)  评论(0编辑  收藏  举报