php - 一个关于实时客流的问题,数据库如何设计,怎么实现该功能?
巴扎黑
巴扎黑 2017-04-11 10:10:33
[PHP讨论组]

1.需求:我现在需要做一个公交客流展现,用不同的展现来显示公交车的客流量,类似地图中的实时路况,所有的状态是后台人为设置的。
2.有一条线路1,存在A,B,C,D,E,F,G,H站点,可以A->H这样行进,也可以H->A行进,设置A->B为状态1,B->C为状态2,C->H状态3.
展示出来状态为:
A--状态1-->B--状态2-->C-状态3-->H
如果再设置B-E为状态4,展示状态为:
A--状态1-->B--状态4-->E--状态3-->H

反向行进也同样。

现在没有思路怎么去做这个,包括数据库如何设计,希望大家能给个思路,谢谢

=======================================================================
如果是多条线路,线路可以交叉,该怎么做
例:有两条线路line1,line2;line1中有站点A,B,C,D,E,line2中有站点a,b,c,D,e,f;
如果需要设置A->f 为状态1,(A->B->C->D->e->f)为状态1,

这样该怎么做呢,如果是N条线路

巴扎黑
巴扎黑

全部回复(2)
黄舟

偶来抛个砖 -- 存数据库的时候按最小粒度,分成一小段一小段的存:


| begin | end | status |
| A     | B   | 1      |
| B     | C   | 2      |
| C     | D   | 3      |
| ...   | ... | ...    |
| D     | C   | 1      |
| C     | B   | 2      |
| B     | A   | 3      |
阿神

感谢 @北月武士 的回答,最终就是按照他的思路去做的

首先对每条线路的站点进行依次排序,增加一个序列号,对于每条线路都会以最小粒子进行保存。

最后还有其实还有一个疑问。如果线路可以交叉怎么办

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号