数据库已经建好了,用了三张表1、公交车的车号与收发车时间
Bus: busNo(PK) startTime endTime2、车站号与车站名
BusStop: stopNo(PK) stopName 3、车站号与公交车号对应表
Formula: id(PK) busNo(FK) stopNo(FK)输入出发点A,终点B,怎样才能实现查询线路的功能呢?

解决方案 »

  1.   

    给你提供一个思想:假设一些站点A,B,C,D,E,F,G,....你设计表的时候就应该这样设计其中一张表应该包含两个字段:站点,还有一个就是站点象对应的所有公交车次.如下:A站点对应的车次有:110、113、115;B站点对应的有:117,112,113;C站点对应的有:118,116,112;D站点对应的有110,114,115,112;E站点对应的有:110;114,112;......................
    假设你输入出发站为A终点站为D求车次,就应该先查出所有经过A的车次,和所有经过B的车次,求其交集,不难得出从A---B的车次为110...进而可以得出110的整个线路
    总之一句话:楼主在建立了以上表以后,我个人觉得还应该建立站点与公交车次关系的一张表,不知楼主听懂了没...加油
      

  2.   

    谢谢你的回复哈
    我以前也考虑过这种建表思路的,但是后来想到这样做的话,使用hibernate反转后的java类的属性不好处理,Formula那张表就是记录的站点与公交车次关系的表。
      

  3.   

    2个表就足够了
    1、公交车的车号与收发车时间和行车路线
    Bus: busNo(PK) startTime endTime line
    line就是路线,内容是1,2,3,4,的样子。1,2,3,4是车站号,就是BusStop表的stopNo字段。注意stopNo后面带逗号。2、车站号与车站名
    BusStop: stopNo(PK) stopName查询从站点X到站点Y,可以坐的车号,不考虑转车,必须是一次直达。
    select busNo from Bus where line like '%:X,%:Y,%'
    注意:X,:Y后面要带逗号。如果考虑多次转车,就很麻烦。
      

  4.   

    简单的分析一条公交线路应该有什么属性  有线路号,站点
    一个站点应该有什么属性,有站点名,有线路号,车辆进站时间所以这里就是多对多的关系,查询bus的时候可以级联查询到这个bus经过的所有的busstop
    同样的查询busstop的时候也可以级联查询到这个busstop所有停靠的busID其实就这么点东西,三张表,一张对应bus的pojo一张对应stop的pojo另外一张关系表就OK了
      

  5.   

    反正是毕业设计,不用太过于严谨,你可以先把数据库的模型建好,然后设计pojo类,写好hibernate映射文件,配置好hibernate,让hibernate帮你建表就好了