根据用户输入显示查询数据库的更有效方法

时间:2012-04-11 12:59:27

标签: php mysql performance html5

我有一个数据库(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

我确实有一个功能正常的演示,但效率非常低。我为每次可能的运行查询数据库。我想避免这样做。

有人可以给我一些提示,以提高效率吗?或者给我看一些例子?

我是php和mySQL的新手,在这里和我在一起。

对于我的问题中的任何不一致,我道歉。如果需要更多信息,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果你谷歌的“公交时间表架构设计”,你会发现许多类似的问题和许多不同的解决方案,具体取决于具体的用例。这里有一个类似的问题 - bus timetable using SQL

首先要规范化您的数据结构。有许多不同的方法,但起点可能是 -

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

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