黑马程序员技术交流社区
标题: 公交查询系统直达乘车路线查询算法分享 [打印本页]
作者: 彭思 时间: 2013-2-28 01:08
标题: 公交查询系统直达乘车路线查询算法分享
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为站点在路线中的位置
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.Position<sr2.Position
and sr1.Stop=@StartStop
and sr2.Stop=@EndStop
end
作者: 许庭洲 时间: 2013-2-28 08:29
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |