zoukankan      html  css  js  c++  java
  • 多客户多承运商-运单状态数据结构设计

    映射表方案

    • 映射表结构:

    数据流演化推演:

    最终数据结构:

     数据库相关:

    业务分析:

    1. 客户A :
      1. 运单状态需求: 运单所有状态流程环节
    2. 客户B:
      1. 运单状态需求:客户B(含)之后的,运单所有状态流程环节。不包括客户A状态。
    3. 客户C:
      1. 运单状态需求:客户C(含)之后的,运单所有状态流程环节。不包括客户A状态。
    4. 平台:
      1. 运单状态需求: 运单所有状态流程环节。

    客户只需关注自身也必须只能关注创建订单之后的运单状态流程环节数据。

    1. 平台
      1. 平台提供给客户C自身创建订单状态之前的(客户B与客户A)运单状态数据的是否合理?
        1. 信息隔离
        2. 数据安全
        3. 订单数据泄露
      2. 平台自身需求订单所有流程数据用于数据分析。
        1. 数据全部经过平台流转,必然需要有据可查(记录)
        2. 多客户与多承运商关系复杂,需要全流程管理。
    2. 客户
      1. 订单在交付自身之前状态与客户自身无关。

    方案优点:

    1. 数据只留存一份,不会产生多份存储问题,减少数据库成本。
    2. 可同时提供 客户状态数据、全流程数据查询功能。
    3. 数据库选型可轻易组合,如 MongoDB+ES、MongoDB+Hbase、MongoDB+Mysql 等。
      1. 数据关系映射通过 MongoDB保持。
      2. 其他数据库提供数据写入与查询。
    4. 拓展性强
      1. 不会存在较高性能瓶颈
        1. 映射表数据结构简洁,索引与内存利用率高。MongoDB数据库该结构几乎都在内存中。
      2. 其他数据库只做写入,与查询。不存在更新。

  • 相关阅读:
    Spring Web Flow 2.0 入门详解
    Hadoop单机部署方法
    hadoop单机版搭建图文详解
    MapReduce算法设计Think in Hadoop
    开发 Spring 自定义视图和视图解析器
    HashMap的实现原理
    MapReduce算法模式
    LinkedHashMap的实现原理
    hadoop 2.0 详细配置教程
    电子商务网站之购买欲望和购买目标
  • 原文地址:https://www.cnblogs.com/atliwen/p/14473018.html
Copyright © 2011-2022 走看看