V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
manhere
V2EX  ›  问与答

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

  •  
  •   manhere · 2012-05-24 15:40:01 +08:00 · 3174 次点击
    这是一个创建于 4371 天前的主题,其中的信息可能已经有所发展或是发生改变。
    数据库采用SQLite,第一次做对换乘有些蒙,不知道如何设计数据库结构才合理。
    只考虑1次换乘,2次换乘不考虑。线路分上行下行。

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

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

    应该有更好的办法,而且这种结构如果需要插入一个站点,改动会很大
    manhere
        5
    manhere  
    OP
       2012-05-31 20:38:45 +08:00
    @caoyue 现在考虑的基本和你的方案差不多,换乘查询太慢了,要好几秒。不知道还有什么可优化的地方。
    aa88kk
        6
    aa88kk  
       2012-05-31 20:59:36 +08:00
    再加一个路线-路线换乘表, 查询是先查a点经过的线路,再查b点经过的线路,如果需要换乘,再查换成表. 这些数据完全可以组织好放在内存中. 再想优化的话,用程序把所有的一次换乘站点生成表格然后缓存起来.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1112 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:42 · PVG 02:42 · LAX 11:42 · JFK 14:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.