例如,如果我有两列火车,X和Y,它们旅行:
TRAIN.........STATIONS
Station-D
我怎样才能把这些信息放在数据库中,这样,如果一位乘客询问,什么列车是B站?和,什么列车是D站?站,那么结果应该是X列车和Y列车。
发布于 2011-11-25 19:08:56
我想说的是,你需要三张桌子才能做到这一点。
:站点ID、名称等。
服务:服务ID、接线员、列车车厢数等。
Service_Stop:服务ID,停车号码,站号。
然后,您可以使用如下所示的查询找到在Station-B然后在Station-D停止的服务:
SELECT
Service_ID
FROM
Station AS Start_Station
JOIN Service_Stop AS Start_Stop ON
Start_Station.Station_ID = Start_Stop.Station_ID
JOIN Service_Stop AS End_Stop ON
Start_Stop.Service_ID = End_Stop.Service_ID AND
Start_Stop.Stop_Number < End_Stop.Stop_Number
JOIN Station AS End_Station ON
End_Stop.Station_ID = End_Station.Station_ID AND
End_Station.Name = "Station-D"
WHERE
Start_Station.Name = 'Station-B'发布于 2011-11-25 19:24:06
我要用五张桌子:
Train: train_id, name # e.g "The UnionT522"
Station: station_id, name # e.g. "Eggles Place"
Route: route_id, route_name # e.g. "Afternoon special at 4pm"
RouteStation: route_station_id, route_id, station_id, route_order, begin_flag, end_flag
TrainRoute: train_route_id, train_id, route_id # e.g. which train (above) is going on which route (above).因此,RouteStation会知道事情是从给定的站点开始还是结束,还是在给定的路线上结束。
TrainRoute会知道一列火车的路线。
https://stackoverflow.com/questions/8273234
复制相似问题