第一次结对作业-地铁查询系统逻辑实现思路和设计思想
在地铁查询系统中,我们先理清一下逻辑思路和设计思想,这样有助于我们项目的开发:
首先看功能,我们核心的功能当然就是地铁查询,在搜索框中输入起始站和终点站,点击查询,能够得到:
历经的站点个数,两点间的最有效线路,换乘的站点特别标识出来。
数据库设计:
1.方案一
我们需要两张数据表,一张基础表,一张换乘表,基础表中包括所有站点的信息,换乘表中包括换乘站的信息,换乘表由基础表生成,是动态的。
基础表的设计:
进阶版:
基本逻辑:
1.得到从输入框中获得的信息:起始站和终点站
2.检查起始站和终点站是否在一条线路上:
.1若两站在同一线路上,直接从数据库基础表中查询出两站的直接线路并输出。
.2若两站不在同一线路,调用最短路径算法。
2.方案二
我们可以换一种方式,我们只需要一张总表。这种表结构能给使用SQL语句递归实现查询提供方便,
我们需要一个自增的唯一id,站名,下一站名,线路名,方向,同时至少同一站要存两遍,对应正反两个方向。
基本逻辑:
直接在数据库层面利用递归实现最短路径
实际上,核心算法其实是最短路径算法,又复习一下数据结构,发觉自己数据结构和算法需要再深入研究。
我们核心使用的算法可以选择迪杰斯特拉算法或者弗洛伊德算法,或者用最基础的广度优先搜索。
作者:冰稀饭Aurora
出处:https://www.cnblogs.com/rsy-bxf150/p/17216551.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
我的学习笔记-日常学习总结
, 第一次结对作业
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端