Sql 如何设计公交线路数据库?

Sql 如何设计公交线路数据库?,sql,database,database-design,Sql,Database,Database Design,我想创建一个公交线路数据库,其结果如下: 输入: 源=站-X,目的地=站-Y 输出:经过X站和Y站的各种总线名称/编号 到目前为止,我已经: 公交车(公交车号),公交车路线 如何继续存储各路线的车站名称。 我不是数据库专家,所以任何帮助都是有价值的。 提前谢谢。我想您需要以下表格: BUSROUTE: route_id, routenumber BUSSTOPS: stop_id, stopname BUSROUTESTOPS: route_id, stop_id, displ

我想创建一个公交线路数据库,其结果如下:

输入: 源=站-X,目的地=站-Y

输出:经过X站和Y站的各种总线名称/编号

到目前为止,我已经: 公交车(公交车号),公交车路线

如何继续存储各路线的车站名称。 我不是数据库专家,所以任何帮助都是有价值的。
提前谢谢。

我想您需要以下表格:

BUSROUTE: route_id, routenumber  

BUSSTOPS: stop_id, stopname     

BUSROUTESTOPS: route_id, stop_id, displayorder
以伦敦地铁为例,公交线路表将包含诸如“Jubilee”、“Central”、“District”、“Bakerloo”等值

公交车站表将包含车站名称,如斯坦莫尔、佳能公园、昆斯伯里、金斯伯里、温布利公园等。该表是必要的,因为一个车站可以服务多条路线

总线路径选项卡包含路线编号、车站名称以及该路线车站出现的顺序。主键是route_id和stop_id的合并

一旦你通过了这个,你可能需要一个时间表表,它以最简单的形式包含三个字段:id、route_id和出发时间。如何表现回程,留给读者“作为练习”


伦敦地铁可能不是一个好例子,因为一些线路——特别是北部和地区线路——有多条线路。最好将这些视为单独的路由。

最好创建一个包含站点-路由关系的额外表。您可以在这里定义多对多关系,这意味着一个站点可以有多个路由,而一个路由可以有多个站点

总线(仅当存在多个具有相同*总线号*的物理总线时才需要)

公交线路(线路id和公交号必须是唯一的值)

站点\u路线(多对多,路线\u顺序告诉我们路线内的顺序)


为什么显示顺序?公交线路的顺序不仅仅是为了显示。这是公共汽车实际行驶的顺序。@MartinSmith:这是我通常使用的名字。我同意这里不合适;也许“路线顺序”会更好。
step\u no
leg\u no
是路线/行程中的典型名称。很好地描述:)
BUSROUTE: route_id, routenumber  

BUSSTOPS: stop_id, stopname     

BUSROUTESTOPS: route_id, stop_id, displayorder
id   |   bus_no
---------------
1    |   33
2    |   33A
3    |   33A
route_id  |  bus_no
---------------------
route-A   |   33
route-B   |   33A
route_id  |  station_id |  route_order
------------------------------------
route-A   |   Egham     |   1
route-A   | Haymarket   |   2
route-A   | Egham Plaza |   3
route-B   |   Egham     |   1
route-B   |   Langley   |   2