想做一个公交信息的查询系统,但就数据库结构如何设计却百思不得其解。这是一个多对多的关系,一个站点有多路公交车,而且一个公交车也要经过多个站点,各路车所经过的站点个数不尽相同。要解决的问题有站—站查询。本地最近站点查询,各路车经过站点查询,换乘等。

解决方案 »

  1.   

    表中的结构应该是?
    create table BusRoute
    (
           busNumber   nvarchar2(10)           --汽车号
           ,busRoute   nvarchar2(5)            --行驶停靠站
           ,busRe  nvarchar2(10)           --备注
    )
    存的数据为:A   1
    A   2
    A   3 
    B   1 
    B   2
    表示汽车A 行 1,2,3这个三个停靠站
    表示汽车B 行 1,2这个两个停靠站
      

  2.   

    站点唯一的。 建个 站点表    gj_zd
         1 站点编号(索引) zd_id
         2 站点名称    gj_name
    在建个公交车表  gj_gj
         1 公交编号    gj_id
         2 公交(几路车)  gj_name
         3 经过站点的编号  zd_id
        4 行走顺序       xzid  (站点顺序)
    比如  有个  5路车 
       表  gj_zd 数据有
         zd_id   gj_name
           1      A车站
           2      B车站
           3      C车站 
      表 gj_gj  数据
          gj_id    gj_name  zd_id                      xzid
           1        5路车     1(注释:gj_zd表 A车站)     1(表示第一站)
            2        5路车     2(注释:gj_zd表 B车站)     2(表示第二站)
    你要查询  B车站有那几路车
     SQL语句:  select (select gg.gj_name from gj_gj gg where gg.zd_id = 2) from gj_zd z where z.zd_id in (select g.zd_id from gj_gj g where g.zd_id =2)