公交车路线查询系统后台数据库设计——关联地名和站点

本文介绍了一个公交查询系统的数据库设计和实现方法,包括站点与地名的对应关系建立、路线信息维护,以及支持站点集到站点集查询的算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库下载(该数据库已经输入了广州市350条公交车路线作为测试数据) 

 

在《公交车路线查询系统后台数据库设计——查询算法》一文中,已经实现了查询站点到站点的路线查询算法,但是,现实中用户不一定使用站点进行查询,而是使用地名。因此,公交车查询系统数据库必需记录地名与站点的对应关系,在查询时将地名映射为站点。根据实际情况,某一地点附近通常有几个站点,因此,地名与站点之间是多对多的关系。显然,只需创建一个地名站点关系表stop_spot(Stop,Spot)用于储存这个关系即可。数据库关系图如下:

 

注:

Route:路线表
Stop
:站点表
Spot
:地名表
stop_route
路线-站点关系表
stop_spot
:地名-站点关系表

1.路线和地名信息维护:

以下函数用于维护公交车路线和地名的相关信息

字符串分割函数(信息处理的及路线查询的存储过程都需要使用到该函数) : 

SplitString

 

插入新的公车路线: 

InsertRoute

 

插入新地名函数: 

InsertSpot

 

2.路线查询

在《公交车路线查询系统后台数据库设计——查询算法》一文中,使用储存过程InquiryT0InquiryT1InquiryT2实现了站点到站点的查询,但是地名可能对应多个站点,因此,当进行地点到地点的查询相当于站点集到站点集的查询。因此,为了支持使用地名进行查询,将InquiryT0InquiryT1InquiryT2修改为站点集到站点集的查询:

直达路线查询: 

InquiryT0

 

一次换乘查询: 

InquiryT1

 

二次换乘查询:

InquiryT2

 

综合查询: 

Inquiry

 

如要进行地名到地名的路线查询,必需先调用GetStopsOfSpot获取地名对应的所有站点,在调用Inquiry进行查询。 

获取地名对应的站点: 

GetStopsOfSpot

 

使用地名查询乘车路线示例:

declare   @sps   varchar ( 1024 ), @eps   varchar ( 1024 )
set   @sps = dbo.GetStopsOfSpot( ' 起始地点名称 ' )
set   @eps = dbo.GetStopsOfSpot( ' 目的地点名称 ' )
exec  Inquiry  @sps , @eps
转自:http://www.cnblogs.com/lucc/archive/2009/02/14/1390384.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值