日期:2014-05-17  浏览次数:20562 次

麻烦各位 我要做一个公交查询的程序现在在要做sql数据库怎么做?
因为是做公交车,我的想法是每一条线路做一个表,但是现在城市的公交系统太发达了,光一个城市的公交车就有几百条线路,做出来太麻烦了,有没有简单一点的,哪位大神知道的话,求一个答案,谢谢!

------解决方案--------------------
if OBJECT_ID('T_Line','u')is not null
drop table T_Line
go
CREATE TABLE T_Line(
ID      nvarchar(10),  --公交线路号
Station nvarchar(10),  --站点名称
Orders  int)           --行车方向(通过它反应每个站的上一个、下一个站)
INSERT T_Line
SELECT N'8路'  ,N'站A',1 UNION ALL
SELECT N'8路'  ,N'站B',2 UNION ALL
SELECT N'8路'  ,N'站C',3 UNION ALL
SELECT N'8路'  ,N'站D',4 UNION ALL
SELECT N'8路'  ,N'站J',5 UNION ALL
SELECT N'8路'  ,N'站L',6 UNION ALL
SELECT N'8路'  ,N'站M',7 UNION ALL
SELECT N'20路' ,N'站G',1 UNION ALL
SELECT N'20路' ,N'站H',2 UNION ALL
SELECT N'20路' ,N'站I',3 UNION ALL
SELECT N'20路' ,N'站J',4 UNION ALL
SELECT N'20路' ,N'站L',5 UNION ALL
SELECT N'20路' ,N'站M',6 UNION ALL
SELECT N'255路',N'站N',1 UNION ALL
SELECT N'255路',N'站O',2 UNION ALL
SELECT N'255路',N'站P',3 UNION ALL
SELECT N'255路',N'站Q',4 UNION ALL
SELECT N'255路',N'站J',5 UNION ALL
SELECT N'255路',N'站D',6 UNION ALL
SELECT N'255路',N'站E',7 UNION ALL
SELECT N'255路',N'站F',8
GO
 
if object_id('usp_bus_way_line','p')is not null
drop proc usp_bus_way_line
go
--======================================================
--Author:    Jimmy
--Create Date: 2013-10-11
--Description: 乘车线路查询存储过程
--======================================================
create proc usp_bus_way_line
@Station_Start nvarchar(10),   --起始站
@Station_Stop  nvarchar(10)    --终点站
as
begin
-- 关闭返回行计数
set nocount on
declare @l int
set @l=0
-- 输入起始站为条件,把查询出来的数据插入到临时表中
select ID,Station,
--Line主要取值是(id:站名
   Line=CAST('('+RTRIM(ID)+': '+RTRIM(Station) as nvarchar(4000)),
   Orders=Orders,
   [Level]=@l
into #table from T_Line
where Station=@Station_Start
-- 循环直到@@ROWCOUNT>0并且终点站在临时表中不存在
while @@ROWCOUNT>0 and not exists(select * from #table where Station=@Station_Stop)
begin
set @l=@l+1
--向临时表中插