zoukankan      html  css  js  c++  java
  • 12306售票系统后台开发需求分析和概念设计

    火车售票后台开发需求分析和概念模型

    1.前言

    本项目是立足于目前12306火车售票系统,对售票系统从数据库的设计、接口实现,到与前端交互等,逐步分析,尽可能优化,以便提供一个高性能、高并发的售票系统。

    2.项目简介

    题目基本要求

    • 参考12306站点进行售票系统建模设计,尽可能接近覆盖真实线上系统,实现的功能有但不限于:
      • 用户信息注册
      • 查询余票: 根据时间,车次,站点区间,座次(一等座,二等座,硬卧,硬座…)查询余票
      • 售票: 支持一次购买同一车次的多张车票(多人),支持订单30分钟内锁定,超时释放。支付接口可以mock。
      • 退票: 支持一个用户账户下的批量退票
      • 改签: 同一用户一张车票只能改签一次
    • 所有读写接口延迟要求 <= 500ms
    • 单机支持到500qps的并发请求

    3.需求分析

    1. 用户可以注册账号并登录12306客户端软件;
    2. 用户可以查看自己的相关信息,包括待出行订单、历史订单等;
    3. 用户还可以查看自己未支付的订单,和正在抢票的订单;
    4. 用户可以通过多种条件进行查询车票情况,比如起始站点、目的站点、时间和购票类型(高铁和学生票)这些信息来查询车次有无余票;
    5. 不仅可以查询余票,用户还可以通过出发地+目的地+时间查询相关的车次但是不显示余票、通过车次+时间查询该车次经过的车站和到达的时间、通过车站+时间查询当天在车站停留的车次
    6. 用户查询余票之后可以选择还有余票的车次,选择车位和乘车人然后支付票价进行购票
    7. 用户通过选择没有余票的车次来进行候补票
    8. 用户可以退票或者改签

    4.人员分工

    为了方便开展项目,我们对项目进行了粗略的分工,根据业务的逻辑进行了一定的拆分,不同的业务可能会运行在不同的服务器上。每个业务都至少有两个人参与,杜绝独立实现项目,促进团队合作。

    1. 个人信息,包括了历史记录、登录、注册、实名验证
    2. 查询车次,包括通过出发地起+目的地+时间查询相关的车次但是不显示余票、通过车次+时间查询该车次经过的车站和到达的时间、通过车站+时间查询当天在车站停留的车次
    3. 查询余票,购票、改签
    4. 候补、退票、支付

    5.用例建模

    6.业务建模

    7.数据建模

    为了达到高并发的效果,我们采用二级缓存,将所有与车票相关,查询频率较高的数据都放在redis中存储,数据会定时同步到mysql数据库中。







    8.总结

      本文主要对12306进行概念模型分析,对其各功能模块逐步设计,对工程实践的实现有了更好的把握。
  • 相关阅读:
    Asp.net button防止点击多次数据提交
    Asp.net button防止点击多次数据提交
    Asp.net button防止点击多次数据提交
    被投资人坑的大学生创业者
    分析了3200家创业公司
    移动互联网4种引流思维:免费思维、跨界思维、平台思维、金融思维
    腾讯入局、估值超10亿美元,“野路子”瑞幸的三大增长法则
    95后女生月入8万,竟然“玩着玩着”就赚到钱
    95后中介年入百万:“伪焦虑”是你人生最大的骗局
    一家靠收智商税盈利的公司,卖了340亿
  • 原文地址:https://www.cnblogs.com/tomyu123/p/14132824.html
Copyright © 2011-2022 走看看