注册 登录
编程论坛 ASP技术论坛

一个火车站查询系统的数据库该如何设计比较好一些

fuhuijun 发布于 2008-05-22 12:05, 2108 次点击
如何设计一个关于火车站查询系统,通过起点站和终点站,即可查出包括直达的和非直达的车次信息,请指教谢谢,开发环境是asp+MSSQL2000.
14 回复
#2
hxfly2008-05-22 12:56
这个系统,比较复杂....
我有简单的方法........
通过别人做好了的,去采集他的结果,这样自己什么也不用做,连MSSQL2000都不用.....
但是可能违法.....


如果非要自己做的话,要集思广益了。
我的思路是:把每个火车所经过的站点都记录在数据库中,可以记录在一个列中,用特殊符号分割,比如“//北京//太原//上海//福建//”,那你只需两个like就能搞定.

where 字段名字 like '%//"&你输入的起点&"//%' and 字段名字 like '%//"&你输入的终点&"//%'

这样应该能搞定
#3
hxfly2008-05-22 13:02
具体的表

train---------数据库表名


t_id,索引
t_name,火车名称
t_path,途径("//北京//太原//上海//福建//"这样的标志,这个是用来检索的。)
t_time(记录途径和到达这些站点的时间,用来显示的)


其他的自己添加应该就可以了,虽然方法笨拙,但是应该能够实现
#4
fuhuijun2008-05-22 13:34
谢了,其实我现在这个已经做完了,现在主要的就是如果是直达车还好,要查出不是直达车的话,那么他就是经过这个站,那么他的价钱该怎么确定,就是中间站的价钱我没法确定,主要是这一点我不知道该怎么做.

[[it] 本帖最后由 fuhuijun 于 2008-5-22 13:41 编辑 [/it]]
#5
hxfly2008-05-22 13:47
那就需要录入每站到每站的票价,然后先确定坐哪个车次,在查这个车次的对应价格。
如果想做价格的话,就要细致了。

可以做成几个表联合。
train_price---表名
tp_id
tp_name(火车名称)
tp_start
tp_end
tp_type(乘坐类型)
tp_price
tp_licheng
tp_starttime(到站时间)
tp_endtime(出站时间)

同一火车需要录入所有节点与节点之间的价格,因为这些东西不能通过计算来实现,不是1公里两块钱.....那些定价应该是死的,且没有严格的规律吧?
#6
fuhuijun2008-05-22 13:52
我想在问您一下如过是这样的话,那么他的途径站和时间该怎么提取啊,谢谢
#7
hxfly2008-05-22 14:02
tp_start--------相对起点站名称
tp_end---------相对重点站名称

比如北京--廊坊--天津--保定--石家庄
你需要输入北京-廊坊,北京--天津,北京--保定,北京--石家庄,廊坊--天津,廊坊--保定,廊坊--石家庄,天津--保定,天津--石家庄,保定--石家庄这些记录的全部信息。
#8
hxfly2008-05-22 14:03
时间就加字段就可以了。
#9
fuhuijun2008-05-22 14:11
那如果站比较多的话,,那就比较累了.
#10
fuhuijun2008-05-22 14:12
我现在做的这个就是这样的方法
#11
fuhuijun2008-05-22 14:19
我知道了
呵呵
谢谢你了啊
#12
hxfly2008-05-22 14:24
累也没办法,不知道别人有什么好办法没.....不过应该可以用采集其他网站车次信息来实现信息录入。方法一样,就是不用手动添加,写个程序让它自动添加,呵呵。如果你需要全部火车数据的话,还是写个采集录入或用其他方法(比如找到现成的数据库)。

还有一个比较一个一个填写简单的方法,等我下面想想哈。
#13
fuhuijun2008-05-22 14:33
好的
#14
hxfly2008-05-22 14:39
就用一个表,加一个字段,记录途径站点的全部信息,用特殊符号连接不同信息并以备分割
比如北京-廊坊-天津-保定-石家庄

车次:AAA
途径://北京//廊坊//天津//保定//石家庄//(查询用)
信息://相对起点:北京--到站时间::TIME--离站时间::TIME--上站到这里的票价::0元//相对起点:廊坊--到站时间::TIME--离站时间::TIME--上站到这里票价::15元//相对起点:天津--到站时间::TIME--离站时间::TIME--上站到这里的票价:12元//......

这样你如果查询出来本个车次了,那把这个车次的信息读出来然后用你自己的特殊符号分割再分割,然后计算,就能得到你要的东西,还有,如果还加其他信息,同样道理,同特殊字符串合成近来

比如我这种情况,就先用//分割,去掉两端的空数据,得到
相对起点:北京--到站时间::TIME--离站时间::TIME--上站到这里的票价::0元
这样的信息,然后在用--分割
得到相对起点:,到站时间,离站时间,上站到这里的票价::0元
等信息,票价应该可以简单相加吧。如果可以简单相加,那这样应该比较简单的。如果不能简单相加,那就没办法了

比如,如果北京到廊坊15,廊坊到天津12,那北京到天津如果是27的话,我这样做就可以了如果不是,那还是用上面的一条一条相加的方法吧
#15
fuhuijun2008-05-22 14:43
呵呵
好的,谢了
1