繁体   English   中英

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

[英]More efficient way of displaying querying a db, based on input from user

我有一个带有总线时间表的数据库(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

我确实有一个正常运行的演示,但是它效率很低。 我查询数据库的所有可能的运行。 我想避免这样做。

任何人都可以给我一些技巧,以提高效率吗? 还是给我看一些例子?

如果您通过Google搜索“公交时刻表架构设计”,则将根据具体用例找到许多类似的问题和许多不同的解决方案。 这是使用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)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM