公交换乘查询的数据库如何设计才合理?

2012-05-24 15:40:01 +08:00
 manhere
数据库采用SQLite,第一次做对换乘有些蒙,不知道如何设计数据库结构才合理。
只考虑1次换乘,2次换乘不考虑。线路分上行下行。

感谢指点。
3182 次点击
所在节点    问与答
6 条回复
dimlau
2012-05-31 19:00:13 +08:00
我猜你在做与此相关的安卓 APP 吧?
manhere
2012-05-31 19:08:16 +08:00
@dimlau 求指教,么么哒
bearcolin
2012-05-31 19:58:45 +08:00
公交换乘一定要把首班车和末班车时间因素考虑进去,这是目前绝大多数同类app没做的,有了这个功能就无敌了。
caoyue
2012-05-31 20:27:03 +08:00
想到一个简单的,抛砖引玉吧:D

站点表:记录站点
路线表:记录路线、首发收班时间等等
站点-路线对应表:记录站点-路线对应
其他表:地名-站点对应等等

应该有更好的办法,而且这种结构如果需要插入一个站点,改动会很大
manhere
2012-05-31 20:38:45 +08:00
@caoyue 现在考虑的基本和你的方案差不多,换乘查询太慢了,要好几秒。不知道还有什么可优化的地方。
aa88kk
2012-05-31 20:59:36 +08:00
再加一个路线-路线换乘表, 查询是先查a点经过的线路,再查b点经过的线路,如果需要换乘,再查换成表. 这些数据完全可以组织好放在内存中. 再想优化的话,用程序把所有的一次换乘站点生成表格然后缓存起来.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/37193

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX