?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

糖果派對電子游戲網址:公交車路線查詢系統后臺數據庫設計——路線查詢

?

本文示例源代碼或素材下載

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

S1

R1

1

S2

R1

2

S3

R1

3

S4

R1

4

S5

R1

5

S6

R2

1

S7

R2

2

S2

R2

3

S8

R2

4

S8

R3

1

S9

R3

2

S10

R3

3

注:Stop為站點名,Route為路線名,Position為站點在路線中的位置

2.直達乘車路線查詢算法

基于表stop_route可以很方便實現直達乘車路線的查詢,以下是用于查詢直達乘車路線的存儲歷程InquiryT0:

create proc InquiryT0(@StartStop varchar(32),@EndStop varchar(32))

as

begi糖果派對電子游戲網址n

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

3.查詢換乘路線算法

(1)直達路線視圖

直達路線視圖可以理解為一張存儲了所有直達路線的表(假如兩個站點之間存在直達路線,那么在直達路線視圖中就有一行與之相對應)

create view RouteT0

as

select

sr1.Stop as StartStop, --啟始站點

sr2.Stop as EndStop,  --目的站點

sr1.Route as Route,  --乘坐線路

sr2.Position-sr1.Position as StopCount  --顛末的站點數

from

stop_route sr1,

stop_route sr2

where

sr1.Route=sr2.Route

and sr1.Position

(2)換乘路線算法

顯然,一條換乘路線由多少段直達路線組成,是以,基于直達路線視圖RouteT0可以很方便實現換乘查詢,以下是實現一次換乘查詢的存儲歷程InquiryT1:

create proc InquiryT1(@StartStop varchar(32),@EndStop varchar(32))

as

begin

select

r1.S糖果派對電子游戲網址tartStop as 啟始站點,

r1.Route as 乘坐路線1,

r1.EndStop as 中轉站點,

r2.Route as 乘坐路線2,

r2.EndStop as 目的站點,

r1.StopCount+r2.StopCount as 總站點數

from

RouteT0 r1,

RouteT0 r2

where

[email protected]

and r1.EndStop=r2.StartStop

and [email protected]

end

同理可以獲得二次換乘的查詢語句

create proc InquiryT2(@StartStop varchar(32),@EndStop varchar(32))

as

begin

select

r1.StartStop as 啟始站點,

r1.Route as 乘坐路線1,

r1.EndStop as 中轉站點1,

r2.Route as 乘坐路線2,

r2.EndStop as 中轉站點2,

r3.Route as 乘坐路線3,

r3.EndStop as 目的站點,

r1.StopCou糖果派對電子游戲網址nt+r2.StopCount+r3.StopCount as 總站點數

from

RouteT0 r1,

RouteT0 r2,

RouteT0 r3

where

[email protected]

and r1.EndStop=r2.StartStop

and r2.EndStop=r3.StartStop

and [email protected]

end

3.測試

exec InquiryT0 'S1','S2'

exec InquiryT1 'S1','S8'糖果派對電子游戲網址

exec InquiryT2 'S1','S9'

運行結果:

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户