From:http://www.cnblogs.com/lucc/archive/2009/02/14/1390384.html
/Files/leleroyn/bris2.rar(该数据库已经输入了广州市350条公交车路线作为测试数据)
在《公交车路线查询系统后台数据库设计——查询算法》一文中,已经实现了查询站点到站点的路线查询算法,但是,现实中用户不一定使用站点进行查询,而是使用地名。因此,公交车查询系统数据库必需记录地名与站点的对应关系,在查询时将地名映射为站点。根据实际情况,某一地点附近通常有几个站点,因此,地名与站点之间是多对多的关系。显然,只需创建一个地名站点关系表stop_spot(Stop,Spot)用于储存这个关系即可。数据库关系图如下:
注:

Route:路线表
Stop:站点表
Spot:地名表
stop_route: 路线-站点关系表
stop_spot:地名-站点关系表
1.路线和地名信息管理:
以下函数用于管理公交车路线和地名的相关信息
字符串分割函数(信息处理的存储过程及查询相关的存储过程均需要使用到该函数) :
/*
函数功能:将@String以@SplitChar为分隔点分割为字符串数组,结果保留在表变量中
*/
CREATE function SplitString(
@String varchar(2048),
@SplitChar char
)
returns @res table(
Value varchar(128),
vindex int
)
as
begin
declare @index int,@unit varchar(128),@inext int,@len int,@i int
set @index=1
set @i=1
set @len=len(@String)
while @index<=@len
begin
set @inext=charindex(@SplitChar,@String,@index)
if @inext=0 set @inext=@len+1
if @inext>@index
begin
set @unit=ltrim(rtrim(substring(@String,@index,@inext-@index)))
if @unit<>''
begin
insert into @res (value,vindex) values (@unit,@i)
set @i=@i+1
end
end
set @index=@inext+1
end
return
end

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/68999.html