您的位置:首页 > 数据库

火车售票联网数据库设计及部分实现

2014-10-28 22:41 225 查看
一,数据库表设计

 


表名

Train_class

火车车次表

 

 

Id

Varchar(50)

标识

 

 

trainName

Varchar(50)

火车车次名称

 

 

trainRename

Varchar(50)

火车车次名称

 

 

 

 

 

 

 

表名

Train_node

火车车站表

 

 

nodeId

Varchar(50)

主键标识

 

 

nodeName

Varchar(50)

车站名称

 

 

trainId

Varchar(50)

所属火车

 

 

nodeIndex

int

所属列车车站序号

 

 

SerialNo

int

车站序号

 

 

 

 

 

 

 

表名

Train_over_num

火车余票表

 

 

id

Varchar(50)

标识

 

 

trainId

Varchar(50)

所属火车

 

 

startNode

int

开始站

 

 

endNode

int

结束站

 

 

siteNum

int

剩余席位

 

 

bedNum

int

剩余床位

 

 

 

 

 

 

 

表名

Train_site

火车旅客表

 

 

id

Varchar(50)

标识

 

 

trainId

Varchar(50)

所属火车

 

 

trainer

Varchar(50)

旅客姓名

 

 

trainerCardId

Varchar(50)

旅客身份证

 

 

ownerBox

int

所属车厢

 

 

startNode

int

开始站

 

 

endNode

int

结束站

 

 

siteNo

int

席位编号

 

-1,为无座票;大于0为正常席位

siteStatus

int

席位状态

 

1,正常;2,退票;3,

 

以下为求解某站到某站剩余席位SQL

注:1,当前以T8353坪石到广州车次信息

         2,每节车厢为112个席位

         3,当前数据为一节车厢所产生

         4,随机向train_site表添加记录 

 

车次名称
车站名称
所属列车停靠序号

T8353
坪石
0
T8353
乐昌
1
T8353
韶关东
2
T8353
英德
3
T8353
源潭
4
T8353
广州
5
 

 

车次标识
开始节点
结束节点
剩余席位
已占席位
T8353
0
1
75
37
T8353
0
2
51
0
T8353
0
3
27
0
T8353
0
4
12
0
T8353
0
5
12
0
T8353
1
2
88
3
T8353
1
3
64
21
T8353
1
4
49
0
T8353
1
5
49
0
T8353
2
3
67
0
T8353
2
4
52
24
T8353
2
5
52
0
T8353
3
4
73
15
T8353
3
5
73
0
T8353
4
5
112
0
 

 

二,数据加工脚本

/*

坪石【0】~广州【5】

排除当车次坪石到广州及坪石后续到任何一个站的席位

 

韶关【2】~源潭【4】

排除当车次韶关之前车站到韶关之后的任何一个站的席位

排除当车次韶关到终点站(广州【5】)及韶关后续到任何一个站的席位

*/

DECLARE @start INT,@end INT

SET @start=4

SET @end=5

 

UPDATE train_over_num SET siteNum=112-(

(SELECT COUNT(1) FROM train_site WHERE trainId='2C2BD95D-4396-4EF5-ABD4-35103B584683'

AND (startNode<@start AND endNode>@start)

OR ( startNode>=@start AND startNode<@end  AND endNode>@start))

)

WHERE  trainId='2C2BD95D-4396-4EF5-ABD4-35103B584683' and startNode=@start AND endNode=@end

 

有人购票时,我们就根据startNode,endNode来查询train_over_num表剩余多少。确定下单时,查询席位默认以短程排在前面(优先使用短程)。

以上设计凭自己想象出来,期待更好的设计。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 设计 脚本 sql