《公交车路线查询系统后台数据库设计》由会员分享,可在线阅读,更多相关《公交车路线查询系统后台数据库设计(55页珍藏版)》请在人人文库网上搜索。

1、公交车路线查询系统后台数据库设计-查询算法1. 公交车路线信息在数据库中的存储方式显然,如果在数据库中简单的使用表bus_route( 路线名,路线经过的站点,费用)来保存公交车路线的线路信息,则很难使用查询语句实现乘车线路查询,因此,应该对线路的信息进行处理后再保存到数据库中,笔者使用的方法是用站点-路线关系表stop_route( 站点,路线名,站点在路线中的位置)来存储公交车路线,例如,如果有以下 3条路线R1 : S1-S2-S3-S4-S5R2 : S6-S7-S2-S8R3 : S8-S9-S10则对应的 站点-路线关系表stop_route 为StopRoutePositi on。

2、S1R11S2R12S3R13S4R14S5R15S6R21S7R22S2R23S8R24S8R31S9R32S10R33注:Stop为站点名,Route为路线名,Position为站点在路线中的位置2. 直达乘车路线查询算法基于表stop_route可以很方便实现直达乘车路线的查询,以下是用于查询直达乘车路线的存储过程InquiryTO :create proc In quiryTO(StartStop varchar(32),E ndStop varchar(32)asbeg inselectsr1.Stop as启始站点,sr2.Stop as目的站点,sr1.Route as乘坐线路,。

3、sr2.Positio n-sr1.Position as经过的站点数fromstop_route sr1,stop_route sr2wheresr1.Route=sr2.Routeand sr1.Position in dexbeg insetun it=ltrim(rtrim(substri ng(Stri ng,i ndex,i next-i ndex)if un it0)beg inrollback tran sp1commit tran t1raiserror(插入路线时发生错误,16,1)returnend-插入不存在的站点in sert Stop( name)select di。

4、st inct n ame from stops ss where n ame not in (select n ame from Stop)if(error0)beg inrollback tran sp1commit tran t1raiserror(插入路线时发生错误,16,1)returnendcommit tran t1end插入新地名函数:/*插入新地名name地名Stops:地名附近的所有站点,多个站点用/隔开Remark与地名相关的说明*/CREATE proc In sertSpot(n ame varchar(64),Stops_Str varchar(1024),Rema。

5、rk varchar(1024)asbeg indeclare stops table( name varchar(32)in sert stops select disti net Value fromdbo.SplitStri ng(Stops_Str,/)declare n varchar(32)set n=”select top 1 n=namfpom stops s where namenot in (select namefromstop)if(n)beg inraiserror (站点 s 不存在,16,1, n)returnendin sert into Spot (n ame。

6、,remark) values (n ame,remark)in sert stop_spot(Stop,Spot)select s.n ame, n ame from stops sif(errorr2 .R outeend二次换乘查询:/*查询站点StartStops到站点EndStops之间的二次换乘乘车路线,多个站点用 /分开,如:exec InquiryT2 站点1/站点2,站点3/站点4*/CREATE proc In quiryT2(StartStops varchar(32),E ndStops varchar(32) as beg indeclare ss_tab table。

7、( name varchar(32)declare es_tab table( name varchar(32)in sert ss_tab select Value from dbo.SplitStri ng(StartStops,/)in sert es_tab select Value from dbo.SplitStri ng(E ndStops,/) if(exists(select * from ss_tab sst,es_tab est wheresst. name=est .n ame)beg inraiserror (起点集和终点集中含有相同的站点,16,1)returnen。

8、ddeclare stops table( name varchar(32)in sert stops select n ame from ss_tabin sert stops select n ame from es_tab selectrl.StartStop as启始站点,rl.Route as乘坐路线1,rl.E ndStop as中转站点1,r2.Route as乘坐路线2,r2.EndStop as中转站点2,r3.Route as乘坐路线3,r3.EndStop as目的站点,r1.StopCou nt+r2.StopCou nt+r3.StopCou nt as总站点数fro。

9、mss_tab sst,es_tab est,(select * from RouteTO where En dStop not in (select n ame fromstops) r1,(select * from RouteTO where En dStop not in (select n ame fromstops) r2,RouteTO r3wheresst. name=r1.StartStopand r1.E ndStop=r2.StartStopand r2.E ndStop=r3.StartStopand r3.E ndStop=est. nameand r1.Router。

10、3 .R outeand r3.RouteS2-S3-S4-S5R2: S6-S7-S2-S8R3: S8-S9-S10假如现在要从站点 S1到S7,如果用Inquiry 查询路线,显然没有合适的乘 车方案。但是S2和S7相距仅仅一个站的距离, 可以用步行代替,因此可以 先从S1乘坐R1到S2再步行到S7。为了实现在乘车路线中插入步行路线,在数据库使用WalkRoute(StartStop, En dStop, Dista nee,Remark) (StartStop-起始站点,EndStop- 目的站点,Distanee- 距离Remark-备注)储存距离较近的两个站点。加入表 WalkRo。

11、ute后,查询算法也要作相应的修改,其实WalkRoute和RouteTO很相似,因此只需把 WalkRoute看成是特殊的直达线路即可,修改后的InqueryTI如下:/*查询站点StartStops到站点EndStops之间的一次换乘乘车路线,多个站点用/分开,如:exec InquiryTI 站点1/站点2, 站点3/站点4*/CREATE proc In quiryT1(StartStopsvarchar (32),E ndStops varchar (32)asbegindeclaress_tabtable ( name varchar(32)declarees_tab table(。

12、name varchar(32)in sertss_tab selectValue from dbo.SplitStri ng(StartStops,in sertes_tab selectValue from dbo.SplitStri ng(E ndStops,/)/)if (exists ( select * from ss_tab sst,es_tab estwheresst. name=est .n ame)begin raiserror(起点集和终点集中含有相同的站点 ,16,1)returnenddeclare stops table ( name varchar(32)in s。

13、ertstops select n ame fromss_tabinsertstops select n ame fromes_tabdeclareresult table (StartStopvarchar (32),Route1varchar (256),Tran sStopvarchar (32),Route2varchar (256),En dStopvarchar (32),StopCou ntint)declare co unt int setco un t=0-查询”步行-乘车”路线insert resultRoute1,in ( selectname fromRoute2,ss。

14、t.nameas Startstop, 从+r1.StartStop+ 步行到+r1.EndStop asr1.E ndStopas TransStop,r2.Routeas Route2,est. nameas EndStop,r2.StopCou ntas StopCountfromss_tab sst,es_tab est,( select * from WalkRoute where EndStop not stops) r1,RouteTO r2wheresst. name=r1.StartStopand r1.E ndStop=r2.StartStopand r2.E ndStop。

15、=est. nameorder byr2.StopCo untset co un t=rowco unt-查询”乘车-步行”路线insert resultselectsst.nameas StartStop,r1.Routeas Route1,r1.EndStopas TransStop,从+r2.StartStop+ 步行到+r2.EndStopasest.nameas EndStop,r1.StopCountas StopCountfromss_tab sst,es_tab est,RouteT0 r1,( select * from WalkRoute where StartStop f。

16、rom stops) r2wheresst. name=r1.StartStopand rl.E ndStop=r2.StartStopand r2.E ndStop=est. nameorder by rl.StopCou ntset co un t=co un t+rowco untif (count=O)begin-查询”乘车-乘车”路线in sert resultselectsst. name asStartStop,r1.RouteasRoute1,r1.EndStopas TransStop,r2.RouteasRoute2,est .n ameasEn dStop,r1.StopCount+r2.StopCountas StopCountfromss_tab sst,es_tab est,(select * from RouteT0 whereEndStopnot in ( select namefrom stops) r1,RouteT0 r2wheresst. name=r1.StartStopand r1.E ndStop=r2.StartStopand r2.En dStop=est. nameand r1.Routernfi/T Ltrr 】“收般孟毎2Jrf/236 LtttVM.W吓忏几。

城市公交线路查询系统mysql_公交车路线查询系统后台数据库设计相关推荐

  1. 毕业设计-城市公交线路查询系统

    项目编号:BS-XX-057 开发工具:IDEA  /  ECLIPSE /MyEclipse 应用服务器:TOMCAT8.5.31 MYSQL: 5.7 JDK: 1.8 开发技术: 后台开发:SS ...

  2. 城市公交线路查询系统

    项目编号:BS-XX-057 开发工具:IDEA  /  ECLIPSE /MyEclipse 应用服务器:TOMCAT8.5.31 MYSQL: 5.7 JDK: 1.8 开发技术: 后台开发:SS ...

  3. 城市公交线路查询系统mysql_基于Java环境下的城市公交查询系统设计与实现毕业论文+开题报告+答辩PPT+演示视频+设计源码+Mysql文件...

    摘  要 随着城市现代化和智能化程度的不断提高,城市交通的通畅受到了极大的挑战,便利的出行成为越来越多人的追求,但目前的公交查询系统平台质量普遍不高,路线选择单一,信息更新不及时,查询效率不高等问题存 ...

  4. 城市公交线路查询系统mysql_网上公交线路查询系统网站(sqlserver2000)

    系统需求描述公交查询系统的需求最主要是通过站点与车次之间的关系,利用数据结构算法构造一个公交查询的网络图,然后通过最短路径算法,为用户准确地提供两站点之间的最短乘车路线. 其次从业务实现上来说,需要在 ...

  5. 查询中国城市公交线路

    <!--      获取省份城市API接口:http://v.juhe.cn/postcode/pcd?key=e30b66c95726d5f9d7bf4bf9019b5e1f  --> ...

  6. 公交车路线查询系统后台数据库设计--换乘算法改进与优化

    转:http://www.cnblogs.com/lucc/archive/2009/03/03/1401863.html 在<查询算法>一文中已经实现了换乘算法,但是,使用存储过程Inq ...

  7. python爬取城市公交线路及公交站点坐标

    现实工作中可能会碰到分析城市交通等方面的需求,这就不仅仅需要获取公交线路和站点的字段属性,更重要的是获取经纬度,便于arcgis上图.所以今天这篇文章就来讲讲怎么获取一个城市的所有的公交线路.公交站点 ...

  8. 2023年全国各城市公交线路与站点

    公交线路与站点数据是我们做城市研究时经常会用到的基础数据.那么去哪里获取该数据呢?今天,我们就给大家分享一份2023年的全国所有城市的公交站点与线路数据,数据格式为shp矢量格式.数据来源于开源公交信 ...

  9. 从高德地图获取城市公交线路+站点

    公交线路+站点 在研究城市公共交通问题上,地面的公交网络研究算是很重要的一块,因此获取整个城市的公交线路及其站点的所有数据是非常重要的!但令人高兴的是,有关这些数据的获取其实是很方便快捷的,因为目前的 ...

  10. sql取系统时间减一小时_Java秒杀系统实战系列-整体业务流程介绍与数据库设计...

    本篇文章是"Java秒杀系统实战系列文章"的第三篇,本文将主要介绍秒杀系统的整体业务流程,并根据相应的业务流程进行数据库设计,最终采用Mybatis逆向工程生成相应的实体类Enti ...

最新文章

  1. linux双网卡驱动配置,linux网卡驱动安装、双网卡绑定
  2. Centos7.6 下部署Cobbler
  3. 成都计算机安全学会怎么样,成都计算机专科大学
  4. C#MUD英雄大作战二、乔峰篇(副源码文件连接)
  5. 一次“内存泄露”引发的血案
  6. 华为鸿蒙ipc时延,虚搜
  7. 玩转 SpringBoot 2 快速整合 | JSP 篇
  8. linux 爱数备份,爱数安全备份专家
  9. windows版本和Linux版本的ffmpeg下载使用方法
  10. 企业财务报表分析【3】
  11. cesium 漫游飞行_cesium之三维漫游飞行效果实现篇
  12. 笔记本 安装Linux系统
  13. 小米12、小米12x和小米12pro的区别
  14. 61、弱电工程数据中心的网络架构及其设计思路
  15. Linux:shell 脚本 自动解压压缩文件tar.gz到指定目录
  16. Ambari学习13_安装ambari的时候遇到的ambari和hadoop问题集
  17. 【数据结构】kd树实现,范围查询,邻近查询笔记【1】2d树的构造
  18. [渝粤教育] 南昌大学 现场生命急救知识与技能 参考 资料
  19. 极狐阿尔法 S 华为公司自动驾驶体验:100 分鐘无对接,体验类似人工操作
  20. SQL由出生日期求年龄

热门文章

  1. 鲶鱼效应 互联网倒逼传统金融业转型
  2. IntelliJ IDEA 2018.2激活方法及常用快捷键
  3. win7系统如何开启蓝牙
  4. 关于Chrome的谷歌翻译和IDEA中的Translation翻译插件无法使用的解决方法
  5. android twitter 分享代码,Twitter分享集成
  6. win7计算机自动关机设置在哪里设置方法,win7自动关机设置在哪?自动关机怎么设置具体方法...
  7. 柳州楼顶种植水稻 国稻种芯·中国水稻节:广西12万亩米飘香
  8. 图像和视频的主要格式与编码格式。
  9. java 中 isb啥意思_isb官网-新版下载
  10. 2012年8月编程语言就业趋势