淘宝上那个是订单号 淘宝购物订单号是什么( 四 )


回到订单状态 , 如图 , 用户下单后的一系列操作其实是由三个维度的状态(支付状态、物流 状态、评价状态)构成 , 但多维度状态的存在容易引起认知混乱 , 为解决这一问题 , 我们倾向于创建一个全局维度的状态——订单状态
但如上图中所示 , 构建后的全局维度涉及订单下单-配送-签收评价全流程 , 涉及:待支付、待发货、待揽件、运输中、派件中、已签收、已评价 , 状态值依然庞杂 。想
一下 , 我们创建全局维度状态要解决的就是降低使用者(商家、消费者)认知成本 , 知道在什么步骤需要执行什么操作 , 所以我们归纳下上述订单状态流转时进行相关操作的执行角色:消费者:支付、签收、评价
商家:发货
物流公司:揽件、走件、派件
我们会发现 , 需要消费者、商家操作的仅有:支付、发货、签收、评价 。在定义一动一态法则时我们讲到:任何数量级操作都可以抽象为一个操作 , 为了降低使用者(商家、消费者)认知成本 , 我们可以把[发货、揽件、走件、派件] 这一流程抽象为一个操作——发货 。这样一来就明了了
4. 订单号的设计
订单号的设计是一门艺术 , 能够参与订单号规则设计是一件令人兴奋的事情 , 这种机会通常只在电商项目从0到1的时候有 。那么订单号的设计应遵循哪些原则呢?
1)唯一性
订单号作为订单表的主键 , 需要确保唯一性 。
2)易读性
这里易读性主要体现在系统易读性和沟通易读性 。
要求订单号不宜过长且尽量为纯数字 , 不宜出现字母、符号、数字混用的情况 , 否者对于系统存储、查询性能、以及与用户的沟通成本来说都是一种负担 。
3)安全性
非特殊情况尽量不要在订单号中带入平台运营特征信息 , 如订单数量 , 避免泄露运营数据 。除非故意要让竞对知道你的运营数据 。
瑞幸咖啡较早之前门店订单量就是逐一增加 , 后续也加入了随机因子 , 就是担心外界通过订单编号获得店铺每天成交量 。
4)扩展性
订单号设计需要考虑扩展性 , 如随着平台业务发展 , 订单量激增订单号不够用的情况
5)语义性
订单编号规则中加入带有语义的特征信息 , 能在一定程度上提升平台人员处理订单的效率与便捷性 。
常见的特性信息有:订单生成时间(年月日)、下单渠道、支付渠道、业务类型等 , 但订单编号中不宜携带过多特征信息 , 否则会出现不法分子通过描述订单信息博取用户信任进行实施诈骗 。
说到语义性 , 细心的同学会发现 , 自己淘宝订单号后6位都是一样的 。订单号后6位其实就是用户id后6位 。那么淘宝订单编号中用了用户id后6位是否代表了语义性?答案是否定的 , 因为只用后6位id并不能准确定位到某一个用户 。
那么淘宝订单编号后6位用户id后6位的目的是什么?
翻遍了百度、知乎 , 没有找到答案 。
我是偶然间翻到一份淘宝技术演变PPT , 看到订单表分库的逻辑时才恍然大悟 。
一般的平台型电商 , 订单量大 , 为保证查询检索速度 , 都会采用分库的形式 , 将巨量的订单信息分库存储 , 一般情况下订单系统同时维护了一个订单号和userid的关联关系 , 先根据订单号查到userid , 再根据userid确定分表进而查询得到内容 。而淘宝在订单号上下功夫 , 通过订单号后6位直接锁定库表 , 大大提升高并发下的系统查询性能 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。