用户在[铁路查询系统开发中再次询问此问题,如何对火车,车站和车站进行建模? 我的问题描述:
假设我 在ROUTE-1中* 有一个 BUS-123, 它将通过D,E,F, X,Y,Z 穿越A,B,C,D,E,F,G,H和 ROUTE-2中的BUS-321 。如果有人输入B作为源点,输入F作为目标点,则带有BUS-123的ROUTE-1应该显示在结果中。但是,如果某人输入H作为来源,而输入A作为目的地,则不应显示结果,因为返回的路线可能不一定与旅行的返回路线相同。但是,如果有人输入A作为来源,Z作为目的地,则应该显示带有 ROUTE-1的 BUS-123 和带有 ROUTE-2的 BUS-321 。 ***
我的问题是:如何在数据库中存储该路由信息?如果我像以下那样存储在RDBMS中
BUS_NUMBER ROUTE_NUMBER VIA_ROUTES BUS-123 ROUTE-1 A, B, C, D, E, F, G, H BUS-321 ROUTE-2 D, E, F, X, Y, Z
然后,我的搜索将如何工作。我的意思是如何在字符串中搜索它。如果我将所有VIA_ROUTES存储在不同的不同列中,那么它将如何。请用你自己的技术来建议我。这并不紧急,但我正计划进行基本的公交路线搜索,因此,感谢您提出的宝贵意见。
我将其建模为循环图。每个公交车站都由一个顶点表示。两个站点之间的每个直接连接都由标有路线编号的边表示;因此,每条路线都是一系列相连的边。也使边缘对齐。并非所有从A站到B站的路线也一定会从B站到A站朝另一个方向行驶。
可能想用估计的旅行时间来填充每个边缘,这是该条腿的一个或多个差异测量值-在周日晚上2点,方差可能很小,但是在周五晚上5点,则可能非常小高,以及出发时间列表。
然后,它涉及图形遍历并找到“最低成本”路线,但是您选择定义“最低成本”-您可能要考虑的因素包括:
应该注意的是,太多的等待时间是不好的(曾经花40分钟等待一月份的-10 F时的公共汽车吗?)。太少也很不好,因为由于公共汽车对本地交通状况的波动具有高度的响应能力,因此公共汽车的时间表往往会有相当大的可变性,因为它增加了丢失连接的可能性。
我就是那样做的。
我不相信我会尝试直接在SQL中解决它。
不过,该模型非常适合SQL。您需要以下实体,然后是一些实体,因为您需要代表时间表等。