数据库课程设计(火车售票系统设计与实现)

1.需求分析

1.需求描述

火车售票管理系统需要对旅客提供用户注册和维护信息的功能,并允许旅客查询车票、购买车票、改签和退票、查询本人车票详细信息等,需要对列车员提供查看某辆火车具体座位使用情况的功能,方便列车员查票、帮助乘客补票等等,此外,系统需要对管理员提供维护更新火车信息的功能,允许管理员增减火车班次、应对火车晚点等突发情况。值得注意的是,由于同一时刻使用人数众多,系统原则上要做到高并发。

2.功能描述

用户注册和信息维护功能:

用户信息应当包括账户、密码、电话号码和乘车人信息,允许一个用户添加多个乘车人,乘车人信息包括姓名、身份证号、优惠类型、手机号码、(可用状态),可用状态是考虑到例如老赖、逃犯等被运输公司禁止购票的情形。信息维护允许用户修改密码、电话号码、增删改乘车人信息。

 购票功能:

旅客可以按“起点城市-终点城市,日期”查询该日车票表,表中允许按有无余票、车次类型、车组类型、席别类型、出发车站、到达车站、出发时间段和到达时间段来查询特定的车票,最好允许旅客进行中转查询。车票信息除前面提到的有无余票、车次类型……之外,还需要有车票最低价格、各席别余票数量等信息。购票时,需要旅客提供自己账号所绑定的乘车人信息,并在一定时间内完成支付,否则释放席位。

 退票改签:

在满足要求的情况下(例如未开始检票),允许乘客退票和改签,退票即删除订单信息,改签在删除的基础上创建新的订单,只是价格变为“补齐差价”。

 查询本人车票:

查询订单记录,订单记录比车票信息要增加订单号和具体座位。

 乘务员查票、帮助补票、升席功能:

乘务员账号信息要包含员工号、服务的列车号以及基本个人信息,管理员可以更改乘务员服务的列车号,允许员工查询自己服务的列车的具体座位使用情况,可以从座位查询当前乘车人的身份证号、姓名等信息,可以帮助乘客升席和补票。

 管理员系统:

管理员可以按身份证号封禁一些乘车人,可以调整乘务员的岗位,可以增减火车班次、维护更新火车信息、修改火车当前状况如晚点x分钟等等。

二更 :

用户表(USERS):

属性:账号(USER_ID),密码(PASSWORD),电话号码(PHONE)
主键:账号(USER_ID)

 乘车人表(PASSENGERS):

属性:姓名(NAME),年龄(AGE),性别(SEX),身份证号(PASSENGER_ID),电话号码(PHONE),优惠类型(CONCESSION_TYPE),可用状态(IS_ACTIVE)
主键:身份证号(PASSENGER_ID)

用户—乘车人表(USER-PASSENGER):

属性:账号(USER_ID),身份证号(PASSENGER_ID)
主键:账号(USER_ID),身份证号(PASSENGER_ID)
外键:账号(USER_ID)  参照用户表(USERS)  账号(USER_ID)
           身份证号(PASSENGER_ID)

           参照乘车人表(PASSENGERS)  身份证号(PASSENGER_ID)

车站表(STATIONS):

属性:车站名(STATION_NAME),所在城市(CITY),地址(ADDRESS)
主键:车站名(STATION_NAME)

列车表(TRAINS):

属性:列车号(TRAIN_ID),列车类型(TRAIN_TYPE),列车编组(NUM),担当路局(BU),列车长(CONDUCTOR)
主键:列车号(TRAIN_ID)
外键:列车长(CONDUCTOR) 

           参照乘务员表乘务员号(TRAINMAN_ID)
           列车类型(TRAIN_TYPE)

           参照列车类型表(TRAIN_TYPES)列车类型(TRAIN_TYPE_ID)

列车类型表(TRAIN_TYPES):

属性:列车类型(TRAIN_TYPE_ID),单组列车定员(MAX_PS),单组列车长度(LEN),餐车位置(ML),最高时速(KMH)
主键:列车类型(TRAIN_TYPE_ID)

列车—车站经过表(TR-ST_PASS):

属性:车站名(STATION_NAME),列车号(TRAIN_ID),开点(D_TIME),到点(A_TIME),停靠站台(PASS_PF),班次号(JOURNEY_ID)
主键:车站名(STATION_NAME),列车号(TRAIN_ID),到点(A_TIME)
外键:车站名(STATION_NAME)  参照车站表(STATIONS)  车站名(STATION_NAME)
      列车号(TRAIN_ID)  参照列车表(TRAINS)  列车号(TRAIN_ID)

车站—车站基础价格表(ST-ST_PRICE):

属性:出发站(D_STATION),到达站(A_STATION),价格(PRICE)
主键:出发站(D_STATION),到达站(A_STATION)
外键:出发站(D_STATION),到达站(A_STATION)  均参照车站表(STATIONS)

           车站名(STATION_NAME)


班次表(JOURNEYS)

 属性:班次号(JOURNEY_ID),延误时间(DELAY_TIME)
 主键:班次号(JOURNEY_ID)

座位信息表(SEATS):

属性:列车号(TRAIN_ID),座位编号(SEAT_ID),席别(SEAT_TYPE)
主键:列车号(TRAIN_ID),座位编号(SEAT_ID)
外键:列车号(TRAIN_ID)  参照列车表(TRAINS)列车号(TRAIN_ID)

座位占用信息导出表(SEATS_OC):

属性:座位编号(SEAT_ID),班次号(JOURNEY_ID),占用开始站(BEGIN_OC),占用结束站(END_OC)
主键:座位编号(SEAT_ID),班次号(JOURNEY_ID)
外键:班次号(JOURNEY_ID)  参照班次表(JOURNEYS)  班次号(JOURNEY_ID)
座位编号参照座位信息表(SEATS)中对应的座位编号
作用:简化非常复杂的车票查询操作

订单表(ORDERS):

属性:订单号(ORDER_ID),乘车人身份证号(PS_ID),下单日期(DATE),班次号(JOURNEY_ID),座位号(SEAT_ID),下单人账户(USER_ID),支付状态(IS_PAYED)
主键:订单号(ORDER_ID)
外键:下单人账户(USER_ID)  参照用户表(USERS)账号(USER_ID)

乘务员表(TRAINMANS):

属性:乘务员号(TRAINMAN_ID),服务列车号(SERVE_TRAIN_ID),年龄(AGE),性别(SEX),姓名(NAME),职位(POSITON) 
主键:乘务员号(TRAINMAN_ID)
外键:服务列车号(SERVE_TRAIN_ID)  参照列车表(TRAINS)  列车号(TRAIN_ID)

火车售票系统----ER模型图

 水印没钱去不掉QAQ

GUI界面流以及与SQL数据库的简要交互

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
火车售票预定管理系统需要考虑以下几个方面: 1. 数据库设计:需要设计相关的数据表,如车次、车站、乘客、订单等表,以及它们之间的关联关系。 2. 功能设计:需要考虑系统需要实现的功能,如查询车次、订票、退票、改签、支付等。 3. 界面设计:需要设计用户界面,以方便用户使用系统。 下面是一个简单的设计方案: 1. 数据库设计: a. 车次表(train)包含字段:编号(train_id)、车次(train_name)、始发站(start_station)、终点站(end_station)、出发时间(depart_time)、到达时间(arrive_time)等。 b. 车站表(station)包含字段:编号(station_id)、名称(station_name)、所在城市(station_city)等。 c. 乘客表(passenger)包含字段:编号(passenger_id)、姓名(passenger_name)、身份证号(id_number)、电话(phone_number)等。 d. 订单表(order)包含字段:编号(order_id)、乘客编号(passenger_id)、车次编号(train_id)、出发站编号(start_station_id)、到达站编号(end_station_id)、订单状态(order_status)、支付状态(pay_status)等。 2. 功能设计: a. 查询车次:用户可以根据始发站、终点站、出发时间等条件查询符合条件的车次。 b. 订票:用户可以选择符合条件的车次,并填写相应的乘客信息和出发站、到达站信息,生成订单并保存到数据库中。 c. 退票:用户可以根据订单编号和身份证号进行退票操作,修改订单状态和相应的座位状态。 d. 改签:用户可以根据订单编号和身份证号进行改签操作,修改订单信息和相应的座位状态。 e. 支付:用户可以选择支付方式进行支付,修改订单状态和支付状态。 3. 界面设计: a. 查询车次界面:提供始发站、终点站、出发时间等查询条件,显示符合条件的车次列表。 b. 订票界面:提供车次列表、乘客信息填写、出发站、到达站信息填写等功能。 c. 退票界面:提供订单编号和身份证号输入框,显示订单信息和退款金额。 d. 改签界面:提供订单编号和身份证号输入框,显示订单信息和可选的车次列表。 e. 支付界面:提供支付方式选择和支付金额显示等功能。 以上是一个简单的火车售票预定管理系统设计方案,实际的系统需要根据具体的需求进行调整和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值