1、项目概要
功能要求方面,本系统主要实现票务管理(票额分配、票价调整)、列车管理(车次线路安排、安排车厢)、车票发放以及基础信息管理功能。
1) 票务管理的主要功能有车票定价、票额分配
车票定价:旅客的票价主要由3部分组成,第一部分为客票基础票价,客票基础票价包括硬座、软座、市郊客票价格。其中硬座票价为基础票价,软座等票价均以硬座票价为基础按照一定比率换算。第二部分为附加票票价,附加票票价包括加快票票价、卧铺票票价、空调票票价,附加票票价也是以硬座票价为基础按一定比率换算。第三部分为保险费票价,保险费按硬座客票基本票价的2%计算,作为旅客旅行中发生意外伤害时支付保险费的基金。基础票价的计算:各区段分别按其区段里程计算,根据各区段的递减票价率,计算出该区段的全程票价和最后一个区段按中间里程求出的票价相加,即为基础票价。
票额分配:各铁路局分票工作人员根据该局列车所途经站点的待购票人数合理地将票分配的沿途各站。
2) 列车管理主要是为列车合理地安排运行线路和对列车基本信息的维护。
2、数据库设计
(说明:列出整个数据库表名;业务数据表的字段清单)
火车票务综合系统数据库分析(Tables)
表名 备注
User 用户表 用来记录用户信息
TrainBox 列车车厢表 用来记录列车车厢信息
Passenger 乘客表 记录乘客信息
LinkPeople 联系人表 记录联系人信息
Order 订单表 记录用户订单信息
M_order 订单明细表 记录乘客购票信息
Province 省份表
Station 站点表
CarBoxType 车厢类型表
Seat 座位表
AttributeCollection 属性集合表
M_attribute 属性明细表
Staff 员工表
Train 车次表
M_train 车次明细表
Ticket 票库表 存放车票
StaffDedicated 员工账号表
Department 部门表
DepartmentRole 角色权限表
SeatType 席位类别表
User表格字段定义:
字段名称 字段类型 是否主键 描述
User_id Int true 用户主键ID
UserName nvarchar 账号
UserPassword nvarchar 密码
User表格定义说明:User表格用于保存本系统的使用者的账号和密码信息。User_id是用户的唯一标识,用户名和账号不能同时相同。
Passenger表格字段定义:
字段名称 字段类型 是否主键 描述
Passenger_id Int true 乘客ID
PassengerName nvarchar 乘客姓名
IDCard nvarchar 证件号
M_IDCardType_id Int 证件类型ID
M_passengerType_id Int 乘客类型ID
Passenger表格定义说明:Passenger表格用于保存乘客信息,Passenger_id是乘客唯一标识。
TrainBox表格字段定义:
字段名称 字段类型 是否主键 描述
TrainBox_id Int true 车厢id
Number nvarchar 车厢号
CarBoxType_id Int 车厢类型ID
Train_id Int 车次ID
TrainBox表格定义说明:TrainBox表格用于保存列车车厢信息,TrainBox_id是列车车厢的唯一标识,Number是列车车厢的顺序号,CarBoxType_id对应的是车厢的类型(如硬卧车厢),Train_id对应的是车次。
Station表格字段定义:
字段名称 字段类型 是否主键 描述
Station_id Int true 站点ID
Station nvarchar 站点名称
ShortCode nvarchar 站点拼音简写
FullCode nvarchar 站点拼音全称
Province_id Int 省份ID
Station表格定义说明:Station表格用来保存站点信息,Station_id是站点的唯一标识。
Ticket表格字段定义:
字段名称 字段类型 是否主键 描述
Ticket_id Int True 车票ID
TicketNumber nvarchar 车票编号
DriveDate Date 出发日期
TicketGeneratedTime DateTime 车票生成时间
StartStation_M_train_id Int 车次明细ID(出发站、出发时间)
EndStation_M_train_id Int 车次明细ID(目的站、到达时间)
TrainBox_id Int 列车车厢ID(车厢号)
CarSeat_id Int 座位ID(座位号)
Price decimal 车票价格
BuyNo bit 被购否
studentTicketNo bit 学生票否(true为学生 false为普通票)
Station表格定义说明:Station表格用来保存系统生成的车票信息,Ticket_id是车票的唯一标识,TicketNumber对应系统自动生成的唯一的车次编号,DriveDate对应的是列车从某站出发的具体日期(如2015年12月19号),TicketGeneratedTime对应车票生成的具体时间
,StartStation_M_train_id对应车次明细表明细ID(获取出发站和出发时间),EndStation_M_train_id对应车次明细表明细ID(获取目的站和到达时间),TrainBox_id对应的是列车车厢表的车厢ID(获取车厢号),CarSeat_id对应座位表的座位ID(获取座位号和座位席别)Price对应车票的价格,BuyNo对应车票是否被购买,被购买了为true,未购买为false,studentTicketNo对应此车票是留给学生还是给普通乘客的,true是留给学生的,false是留给普通乘客的。
StaffDedicated表格字段定义:
字段名称 字段类型 是否主键 描述
ID Int true 主键ID
User_id Int 用户ID
Staff_id Int 员工ID
Role_id Int 角色ID
StaffDedicated表格定义说明:StaffDedicated表格用来保存员工对应的角色(如售票员)、账号、密码。
Staff表格字段定义:
字段名称 字段类型 是否主键 描述
Staff_id Int true 员工ID
StaffNumber nvarchar 员工编号
StaffName nvarchar 员工姓名
IDCardNumber nvarchar 身份证号码
Station_id Int 站点ID
Staff表格定义说明:Staff表格用来保存员工具体的信息,Staff_id是员工唯一的标识,Station_id对应的是员工所在的站点
Seat表格字段定义:
字段名称 字段类型 是否主键 描述
CarSeat_id Int true 座位ID
SeatNumber nvarchar 座位号
SeatType_id Int 席别类型ID
CarBoxType_id nvarchar 车厢类型ID
Seat表格定义说明:Seat表格保存的是不同类型的车厢所对应的座位号和席位类别,CarSeat_id是某一类型车厢的座位的唯一标识。
Province表格字段定义:
字段名称 字段类型 是否主键 描述
Province_id int true 省份ID
Province Nvarchar 省份名称
ProProvince Nvarchar 省份拼音简写
Order表格字段定义:
字段名称 字段类型 是否主键 描述
Order_id Int true 订单ID
OrderNumber Nvarchar 订单编号
OrderTime Nvarchar 下单时间
User_id Int 用户ID
PayType_id Int 支付方式ID
Order表格字段定义:Order表格用来保存网上用户和窗口售票人员下的购票订单,Order_id是购票订单的唯一标识,OrderNumber对应系统自动生成的订单号,OrderTime对应用户下单时间,User_id对应下单的用户,PayType_id对应用户的支付方式(如未支付 现金支付 网上支付)
M_train表格字段定义:
字段名称 字段类型 是否主键 描述
M_train_id Int true 车次明细ID
stationOrder Nvarchar 站序
Station_id Int 站点ID
Mileage int 里程数
NumberOfDay Nvarchar 天数
DriveTime Time 开车时间
ArriveTime Time 到达时间
Train_id Int 车次ID
M_train表格字段定义:M_train用来保存车次所经过的站点的出发时间、到达时间、从始发站到目的站的里程数、运行天数。
M_order表格字段定义:
字段名称 字段类型 是否主键 描述
M_order_id Int True 订单明细ID
Passenger_id Int 乘客ID
Ticket_id Int 车票ID
Order_id Int 订单ID
M_ticketClass_id Int 票种ID
M_ticketType_id Int 车票状态ID
Remark Nvarchar 备注
M_order表格字段定义:M_order表格用来保存乘客所购买的车票信息。Passenger_id对应乘车人,Ticket_id对应乘客所购买的车票、Order_id对应的是车票所属的订单。M_ticketType_id对应车票状态(如退票 变更到站)
M_attribute表格字段定义:
字段名称 字段类型 是否主键 描述
M_attribute_id Int True 属性明细ID
Name Nvarchar 属性明细名称
AttributeCollection_id Int 属性集合ID
LinkPeople表格字段定义:
字段名称 字段类型 是否主键 描述
LinkPeople_id Int True 联系人ID
Passenger_id Int 乘客ID
User_id Int 用户ID
PhoneNumber Nvarchar 手机号
TelephoneNumber Nvarchar 固定电话
E_mail Nvarchar 电子邮件
Adress Nvarchar 住址
Postcode Nvarchar 邮政编号
UserNo Bit 用户否
DepartmentRole表格字段定义:
字段信息 字段类型 是否主键 描述
Role_id Int True 角色ID
RoleName Nvarchar 角色名称
Department_id Int 部门ID
Department表格字段定义:
字段名称 字段类型 是否主键 描述
Department_id int True 部门ID
sectionName Nvarchar 部门名称
CarBoxType表格字段定义:
字段名称 字段类型 是否主键 描述
CarBoxType_id Int 车厢类型ID
CarBoxName Nvarchar 车厢类型名称
AttributeCollection表格字段定义:
字段名称 字段类型 是否主键 描述
AttributeCollection_id int True 属性集合ID
AttributeName int 属性集合名称
SeatType表格字段定义:
字段名称 字段类型 是否主键 描述
SeatType_id int True 席位类别ID
SeatTypeName Nvarchar 席位类别名称
CarBoxType_id Int 车厢类型ID
AttributeCollection表格字段定义:AttributeCollection用来保存车厢的席位类型(如上铺 中铺 硬座)
功能要求方面,本系统主要实现票务管理(票额分配、票价调整)、列车管理(车次线路安排、安排车厢)、车票发放以及基础信息管理功能。
1) 票务管理的主要功能有车票定价、票额分配
车票定价:旅客的票价主要由3部分组成,第一部分为客票基础票价,客票基础票价包括硬座、软座、市郊客票价格。其中硬座票价为基础票价,软座等票价均以硬座票价为基础按照一定比率换算。第二部分为附加票票价,附加票票价包括加快票票价、卧铺票票价、空调票票价,附加票票价也是以硬座票价为基础按一定比率换算。第三部分为保险费票价,保险费按硬座客票基本票价的2%计算,作为旅客旅行中发生意外伤害时支付保险费的基金。基础票价的计算:各区段分别按其区段里程计算,根据各区段的递减票价率,计算出该区段的全程票价和最后一个区段按中间里程求出的票价相加,即为基础票价。
票额分配:各铁路局分票工作人员根据该局列车所途经站点的待购票人数合理地将票分配的沿途各站。
2) 列车管理主要是为列车合理地安排运行线路和对列车基本信息的维护。
3) 列车的车票进行完票额分配将提前生成的票保存到票库后,有很多的票是网上购票的旅客和车站售票工作人员查不到的(例如预留票要距离列车开车前6个小时才能发售)。生成在票库的车票需要放票工作人员定期发放到网上和车站发售,旅客才能查到票和购票。
2、数据库设计
(说明:列出整个数据库表名;业务数据表的字段清单)
火车票务综合系统数据库分析(Tables)
表名 备注
User 用户表 用来记录用户信息
TrainBox 列车车厢表 用来记录列车车厢信息
Passenger 乘客表 记录乘客信息
LinkPeople 联系人表 记录联系人信息
Order 订单表 记录用户订单信息
M_order 订单明细表 记录乘客购票信息
Province 省份表
Station 站点表
CarBoxType 车厢类型表
Seat 座位表
AttributeCollection 属性集合表
M_attribute 属性明细表
Staff 员工表
Train 车次表
M_train 车次明细表
Ticket 票库表 存放车票
StaffDedicated 员工账号表
Department 部门表
DepartmentRole 角色权限表
SeatType 席位类别表
User表格字段定义:
字段名称 字段类型 是否主键 描述
User_id Int true 用户主键ID
UserName nvarchar 账号
UserPassword nvarchar 密码
User表格定义说明:User表格用于保存本系统的使用者的账号和密码信息。User_id是用户的唯一标识,用户名和账号不能同时相同。
Passenger表格字段定义:
字段名称 字段类型 是否主键 描述
Passenger_id Int true 乘客ID
PassengerName nvarchar 乘客姓名
IDCard nvarchar 证件号
M_IDCardType_id Int 证件类型ID
M_passengerType_id Int 乘客类型ID
Passenger表格定义说明:Passenger表格用于保存乘客信息,Passenger_id是乘客唯一标识。
TrainBox表格字段定义:
字段名称 字段类型 是否主键 描述
TrainBox_id Int true 车厢id
Number nvarchar 车厢号
CarBoxType_id Int 车厢类型ID
Train_id Int 车次ID
TrainBox表格定义说明:TrainBox表格用于保存列车车厢信息,TrainBox_id是列车车厢的唯一标识,Number是列车车厢的顺序号,CarBoxType_id对应的是车厢的类型(如硬卧车厢),Train_id对应的是车次。
Station表格字段定义:
字段名称 字段类型 是否主键 描述
Station_id Int true 站点ID
Station nvarchar 站点名称
ShortCode nvarchar 站点拼音简写
FullCode nvarchar 站点拼音全称
Province_id Int 省份ID
Station表格定义说明:Station表格用来保存站点信息,Station_id是站点的唯一标识。
Ticket表格字段定义:
字段名称 字段类型 是否主键 描述
Ticket_id Int True 车票ID
TicketNumber nvarchar 车票编号
DriveDate Date 出发日期
TicketGeneratedTime DateTime 车票生成时间
StartStation_M_train_id Int 车次明细ID(出发站、出发时间)
EndStation_M_train_id Int 车次明细ID(目的站、到达时间)
TrainBox_id Int 列车车厢ID(车厢号)
CarSeat_id Int 座位ID(座位号)
Price decimal 车票价格
BuyNo bit 被购否
studentTicketNo bit 学生票否(true为学生 false为普通票)
Station表格定义说明:Station表格用来保存系统生成的车票信息,Ticket_id是车票的唯一标识,TicketNumber对应系统自动生成的唯一的车次编号,DriveDate对应的是列车从某站出发的具体日期(如2015年12月19号),TicketGeneratedTime对应车票生成的具体时间
,StartStation_M_train_id对应车次明细表明细ID(获取出发站和出发时间),EndStation_M_train_id对应车次明细表明细ID(获取目的站和到达时间),TrainBox_id对应的是列车车厢表的车厢ID(获取车厢号),CarSeat_id对应座位表的座位ID(获取座位号和座位席别)Price对应车票的价格,BuyNo对应车票是否被购买,被购买了为true,未购买为false,studentTicketNo对应此车票是留给学生还是给普通乘客的,true是留给学生的,false是留给普通乘客的。
StaffDedicated表格字段定义:
字段名称 字段类型 是否主键 描述
ID Int true 主键ID
User_id Int 用户ID
Staff_id Int 员工ID
Role_id Int 角色ID
StaffDedicated表格定义说明:StaffDedicated表格用来保存员工对应的角色(如售票员)、账号、密码。
Staff表格字段定义:
字段名称 字段类型 是否主键 描述
Staff_id Int true 员工ID
StaffNumber nvarchar 员工编号
StaffName nvarchar 员工姓名
IDCardNumber nvarchar 身份证号码
Station_id Int 站点ID
Staff表格定义说明:Staff表格用来保存员工具体的信息,Staff_id是员工唯一的标识,Station_id对应的是员工所在的站点
Seat表格字段定义:
字段名称 字段类型 是否主键 描述
CarSeat_id Int true 座位ID
SeatNumber nvarchar 座位号
SeatType_id Int 席别类型ID
CarBoxType_id nvarchar 车厢类型ID
Seat表格定义说明:Seat表格保存的是不同类型的车厢所对应的座位号和席位类别,CarSeat_id是某一类型车厢的座位的唯一标识。
Province表格字段定义:
字段名称 字段类型 是否主键 描述
Province_id int true 省份ID
Province Nvarchar 省份名称
ProProvince Nvarchar 省份拼音简写
Order表格字段定义:
字段名称 字段类型 是否主键 描述
Order_id Int true 订单ID
OrderNumber Nvarchar 订单编号
OrderTime Nvarchar 下单时间
User_id Int 用户ID
PayType_id Int 支付方式ID
Order表格字段定义:Order表格用来保存网上用户和窗口售票人员下的购票订单,Order_id是购票订单的唯一标识,OrderNumber对应系统自动生成的订单号,OrderTime对应用户下单时间,User_id对应下单的用户,PayType_id对应用户的支付方式(如未支付 现金支付 网上支付)
M_train表格字段定义:
字段名称 字段类型 是否主键 描述
M_train_id Int true 车次明细ID
stationOrder Nvarchar 站序
Station_id Int 站点ID
Mileage int 里程数
NumberOfDay Nvarchar 天数
DriveTime Time 开车时间
ArriveTime Time 到达时间
Train_id Int 车次ID
M_train表格字段定义:M_train用来保存车次所经过的站点的出发时间、到达时间、从始发站到目的站的里程数、运行天数。
M_order表格字段定义:
字段名称 字段类型 是否主键 描述
M_order_id Int True 订单明细ID
Passenger_id Int 乘客ID
Ticket_id Int 车票ID
Order_id Int 订单ID
M_ticketClass_id Int 票种ID
M_ticketType_id Int 车票状态ID
Remark Nvarchar 备注
M_order表格字段定义:M_order表格用来保存乘客所购买的车票信息。Passenger_id对应乘车人,Ticket_id对应乘客所购买的车票、Order_id对应的是车票所属的订单。M_ticketType_id对应车票状态(如退票 变更到站)
M_attribute表格字段定义:
字段名称 字段类型 是否主键 描述
M_attribute_id Int True 属性明细ID
Name Nvarchar 属性明细名称
AttributeCollection_id Int 属性集合ID
LinkPeople表格字段定义:
字段名称 字段类型 是否主键 描述
LinkPeople_id Int True 联系人ID
Passenger_id Int 乘客ID
User_id Int 用户ID
PhoneNumber Nvarchar 手机号
TelephoneNumber Nvarchar 固定电话
E_mail Nvarchar 电子邮件
Adress Nvarchar 住址
Postcode Nvarchar 邮政编号
UserNo Bit 用户否
DepartmentRole表格字段定义:
字段信息 字段类型 是否主键 描述
Role_id Int True 角色ID
RoleName Nvarchar 角色名称
Department_id Int 部门ID
Department表格字段定义:
字段名称 字段类型 是否主键 描述
Department_id int True 部门ID
sectionName Nvarchar 部门名称
CarBoxType表格字段定义:
字段名称 字段类型 是否主键 描述
CarBoxType_id Int 车厢类型ID
CarBoxName Nvarchar 车厢类型名称
AttributeCollection表格字段定义:
字段名称 字段类型 是否主键 描述
AttributeCollection_id int True 属性集合ID
AttributeName int 属性集合名称
SeatType表格字段定义:
字段名称 字段类型 是否主键 描述
SeatType_id int True 席位类别ID
SeatTypeName Nvarchar 席位类别名称
CarBoxType_id Int 车厢类型ID
AttributeCollection表格字段定义:AttributeCollection用来保存车厢的席位类型(如上铺 中铺 硬座)