4

我正在尝试尽可能地提出最有效的数据库。我的巴士路线都有大约 10 个站点。公共汽车从第一站开始,直到到达第 10 站,然后又回来。这个循环每天发生 3 次。

对于如何有效地生成公共汽车的时间以及应该将停靠点存储在哪里,我真的很困惑。如果我将所有站点都放在一个字段中,而将时间放在另一个字段中,那么数据库将不会非常动态。

如果我将所有停靠点一个接一个地存储在一个列中,然后将时间存储在另一列中,则会有很多重复发生,因为一个停靠点有多次。

也许我遗漏了一些东西,我才刚刚开始学习 SQL,这是我们已经设定的任务。

提前致谢。

4

3 回答 3

3

您将需要一张包含您的表格Timetable

  • 路线编号
  • 站号
  • 时间
  • 可能需要的其他字段(方向、序列号、块号等)

我建议创建单独Bus Stop的表(存储站点名称、纬度/经度等)和Route(存储路线名称、第一站、最后一站、方向等)。

您可能已经意识到这一点,但是公交车调度会很快变得复杂。例如:

  • 您可能需要将某些停靠点指定为显示在打印时间表中的“时间点”

  • 每条路线可能有多种变化。例如,某些版本可能在不同的巴士站开始或结束

  • 周六和周日的日程安排可能会有所不同,大多数机构每季度都会更改日程安排

您可能需要考虑其中一些情况,并将它们构建到您的架构中。

这有帮助吗?

于 2010-03-23T21:32:55.613 回答
2

这只是执行此操作的(众多)方法之一:

听起来您可能想要一个routes表格,描述每条路线,并有一个开始时间。

然后,一张stops表,其中包含每个站点的公共汽车描述和等待时间。

一张stopDistanceMapping表格将描述两个停靠点之间的距离,以及它们之间的行驶时间。

最后,您的routeMap表格会将个人routesstops. 然后,您可以使用从每个单独站点的等待时间以及从 的时间/距离来填写您的routes餐桌距离和时间stopDistanceMapping

祝你好运!

于 2010-03-23T21:36:25.870 回答
0

在(非常粗略的)第一次通过时,我会将公交路线时间保存在如下表格中:

RouteID StartingLocationID  EndingLocationID TravelTime

另外我会保留一张停止表,例如:

StopID Address City etc... (whatever other information you need about each location)

对于路线本身,我会存储:

RouteID StartingLocationID RouteStartTime

显然,您应该根据自己的需要对其进行调整,但这应该为您提供一个起点。

于 2010-03-23T21:35:43.517 回答