- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . . .
专业.专注
公交车路线查询系统后台数据库设计--查询算法
1. 公交车路线信息在数据库中的存储方式
显然,如果在数据库中简单的使用表bus_route(路线名,路线经过的站点,费用)来保存公交车路线的线路信息,则很难使用查询语句实现乘车线路查询,因此,应该对线路的信息进行处理后再保存到数据库中,笔者使用的方法是用站点-路线关系表stop_route(站点,路线名,站点在路线中的位置)来存储公交车路线,例如,如果有以下3条路线
R1: S1-S2-S3-S4-S5
R2: S6-S7-S2-S8
R3: S8-S9-S10
则对应的站点-路线关系表stop_route为
Stop
Route
Position
S1
R1
1
S2
R1
2
S3
R1
3
S4
R1
4
S5
R1
5
S6
R2
1
S7
R2
2
S2
R2
3
S8
R2
4
S8
R3
1
S9
R3
2
S10
R3
3
注:Stop为站点名,Route为路线名,Position为站点在路线中的位置
2.直达乘车路线查询算法
基于表stop_route可以很方便实现直达乘车路线的查询,以下是用于查询直达乘车路线的存储过程InquiryT0:?
create proc InquiryT0(@StartStop varchar(32),@EndStop varchar(32))
as
begin
select
sr1.Stop as 启始站点,
sr2.Stop as 目的站点,
sr1.Route as 乘坐线路,
sr2.Position-sr1.Position as 经过的站点数
from
stop_route sr1,
stop_route sr2
where
sr1.Route=sr2.Route
and sr1.Positionsr2.Position
and sr1.Stop=@StartStop
and sr2.Stop=@EndStop
end
3.查询换乘路线算法
(1)直达路线视图
直达路线视图可以理解为一张存储了所有直达路线的表(如果两个站点之间存在直达路线,那么在直达路线视图中就有一行与之相对应)。例如R1,R2,R3对应的RouteT0如下:?
起点
终点
乘坐路线
站点数
S3
S4
R1
1
S3
S5
R1
2
S4
S5
R1
1
S1
S2
R1
1
S1
S3
R1
2
S1
S4
R1
3
S1
S5
R1
4
S2
S3
R1
1
S2
S4
R1
2
S2
S5
R1
3
S2
S8
R2
1
S6
S2
R2
2
S6
S7
R2
1
S6
S8
R2
3
S7
S2
R2
1
S7
S8
R2
2
S8
S10
R3
2
S8
S9
R3
1
S9
S10
R3
1
RouteT0定义如下:
create view RouteT0
as
select
sr1.Stop as StartStop, --启始站点
sr2.Stop as EndStop, --目的站点
sr1.Route as Route, --乘坐线路
sr2.Position-sr1.Position as StopCount --经过的站点数
from
stop_route sr1,
stop_route sr2
where
sr1.Route=sr2.Route
and sr1.Positionsr2.Position
(2)换乘路线算法
显然,一条换乘路线由若干段直达路线组成(每段路线的终点与下一段路线的起点相同),因此,基于直达路线视图RouteT0可以很方便实现换乘查询,以下是实现一次换乘查询的存储过程InquiryT1:?
create proc InquiryT1(@StartStop varchar(32),@EndStop varchar(32))
as
begin
select
r1.StartStop as 启始站点,
r1.Route as 乘坐路线1,
r1.EndStop as 中转站点,
r2.Route as
您可能关注的文档
最近下载
- 国家开放大学电大《电子商务概论》形成性考核 .pdf VIP
- 心理健康知识PPT图文课件.pptx VIP
- 窗帘生产供货安装项目组织实施方案.docx VIP
- 挖掘机设备检验报告模板及填写指南.docx VIP
- 银行合规演讲稿(精选18篇) .pdf VIP
- YB_T 5299-2009 沥青焦行业标准.pdf VIP
- 2026年中考数学-模型·方法·技巧突破 专题1-3“12345”模型·选填压轴必备大招(共3种类型)(学生版+名师详解版).docx VIP
- (全国职业技能比赛:高职)GZ043赛题2学生赛业财税融合.docx VIP
- (正式版)D-L∕Z 860.7510-2016 电力自动化通信网络和系统 第7-510部分:基本通信结构 水力发电厂建模原理与应用指南.docx VIP
- (优质!)2024年江苏省公务员录用考试《行测》真题(B类)及答案.docx VIP
原创力文档


文档评论(0)