0

我有一个带有公共汽车时间表的数据库(mySQL)。我希望能够根据一些用户输入显示时间表:路线、日期和时间。公共汽车每天至少在城市周围运行 13 次。结构设置为:

-Select Route(2 diff routes)
-Select Day(2 set of day, Sun-Wed & Thur-Sat)
-Select Time(atLeast 13 runs per day) = Show Schedule

My table structure is:
p_id,   route     day    run#    stop     time
  1     routeA    m-w      1     stop1   12:00PM
  1     routeA    m-w      1     stop2   12:10PM

..and so on

我确实有一个运行良好的演示,但是,它的效率非常低。我查询数据库以获取每一次可能的运行。我想避免这样做。

谁能给我一些提示以提高效率?或者给我看一些例子?

4

1 回答 1

0

如果您在 Google 上搜索“公交时刻表架构设计”,您会发现很多类似的问题和许多不同的解决方案,具体取决于具体的用例。这是使用 SQL 对 here-bus timetable提出的一个类似问题。

首先是规范化你的数据结构。有很多不同的方法可以解决这个问题,但起点应该是 -

routes(route_id, bus_no, route_name)
stops(stop_id, stop_name, lat/long, etc)
schedule(schedule_id, route_id, stop_id, arrive, depart)

您应该进行一些搜索并查看支持的不同用例以及它们与您的特定场景的关系。上面的例子只是一个粗略的例子。它可以根据所使用的数据进一步细分。您可能只想将停靠点之间的时间存储在一个表中,然后将路线的开始时间存储在另一个表中。

于 2012-04-11T13:39:40.543 回答