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

公交车路线查询系统后台数据库设计——关联地名和站点From http www cnblogs com lucc archive 2009 02 14 1390384 html Files leleroyn bris2 rar 该数据库已经输入了广州市 350 条公交车路线作为测试数据 在 公交车路线查询系统后台数据库设计 查询算法 一文中

大家好,我是讯享网,很高兴认识大家。

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.路线和地名信息管理:

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

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

ContractedBlock.gif ExpandedBlockStart.gif SplitString
/*
函数功能:将@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
小讯
上一篇 2025-02-17 19:52
下一篇 2025-01-12 08:41

相关推荐

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