现在要做一个这样的东东,也就是那种公交查询网,但是我看了一些觉得查询显示都不是很好,应该说不是很友好,完美。1)线路查询,这个好说
2)单个站点查询,也还ok
3)换乘查询,目前没有太好的想法怎么来设计这个数据库,才能方便高效的实现上述三种查询,或者更多补充的尤其是换乘时候,我觉得模糊列出一大堆路线这个不太好,最好是直接找出两条线路最近的换乘方式显示给用户。大家都发表下意见,怎么来更好的设计公交数据库,一个表,还是多个表,效率各方面最好都考虑到~先谢谢大家了!
2)单个站点查询,也还ok
3)换乘查询,目前没有太好的想法怎么来设计这个数据库,才能方便高效的实现上述三种查询,或者更多补充的尤其是换乘时候,我觉得模糊列出一大堆路线这个不太好,最好是直接找出两条线路最近的换乘方式显示给用户。大家都发表下意见,怎么来更好的设计公交数据库,一个表,还是多个表,效率各方面最好都考虑到~先谢谢大家了!
解决方案 »
- 如何优化or查询
- 存储过程的设计问题
- mysql连接问题。localhost能连接,127.0.0.1能连接,但是通过我的局域网192.168.1.111
- mysql 3.23 like 问题
- 这个sql怎么完全转化成mysql语言应用?怎么转化成mysql呢
- 通过MYSQL命令行或者PHPMYADMIN插入或显示中文数据时乱码!!
- 不喜欢mysql的单引号咋办?
- MYSQL中模糊搜索的问题,各位高手指点一下呀。
- SQL2000是不是之能在win2000server上安装才能运行?
- 【高分悬殊】安装MYSQL的时候一直卡在starting server这里,求破
- mysql到底还是不是免费的?
- MySQL建库的问题
(line)线路 (station)站点
1路 beijing
1路 tianjin
1路 shanghai
2路 haerbin
2路 tianjin
2路 jinan
2路 shanghai
....查询tianjin到shanghai:
直接到不用倒车的查询:select * from bus a left join bus b on a.line=b.line where a.station!=b.station and a.station='tianjin' and b.station='shanghai'倒一次车:select * from
(select a.line line1, a.station station1, b.line line2, b.station station2
from bus a left join bus b on a.line=b.line
where a.station!=b.station and a.station='tianjin') t1 left join
(select c.line line3, c.station station3, d.line line4, d.station station4
from bus c left join bus d on c.line=d.line
where c.station!=d.station and d.station='shanghai') t2
on t1.station2 = t2.station3
where station3 is not null
(line)线路 (station)站点
1路 beijing
1路 tianjin
1路 shanghai
2路 haerbin
2路 tianjin
2路 jinan
2路 shanghai
....查询tianjin到shanghai:
直接到不用倒车的查询:select * from bus a left join bus b on a.line=b.line where a.station!=b.station and a.station='tianjin' and b.station='shanghai'倒一次车:select * from
(select a.line line1, a.station station1, b.line line2, b.station station2
from bus a left join bus b on a.line=b.line
where a.station!=b.station and a.station='tianjin') t1 left join
(select c.line line3, c.station station3, d.line line4, d.station station4
from bus c left join bus d on c.line=d.line
where c.station!=d.station and d.station='shanghai') t2
on t1.station2 = t2.station3
where station3 is not null
from bus a left join bus b on a.line=b.line
where a.station!=b.station 建个视图应该会省不少SQL语句
我觉得google已经做到不错了,把所有可能都列出来
不过就是一点不好,两条公交线路有多个站点重叠,它却只给出一个来在大城市你的考虑多次换乘,你试试google,轨道交通的级别比较高。
会告诉你先上某车,再坐地铁,再倒地铁,再倒汽车如果你只是做个课程设计,那倒可以按照你的想法试试合理是按照客户需求来到,你的合理不代表客户的合理。
--线路 站点 站点序号 方向--不知道这样是啥用意,查询时候还要顾及方向么?简单的按照楼上兄弟似乎查询太复杂了点
如果我把包含开始站点tianjin这个站点的所有公交查出来,在把包含到达站点shanghai的所有线路找出来
这样再把两个数组拿到前台页面去判断交集,这样可行不?