谈谈订单号和流水号的关系
订单号和流水号是不同的。
首先订单号是订单唯一的编号,而且电商平台的各种子系统也是根据订单来统计业务完成的情况,订单编号经常用来被查询,所以数据类型必须是数字,而且是全局唯一,那肯定就得主键字段了。
然后流水号是打印在一般是打印在购物单据上面的,里面一般包含了订单的相关信息,方便人员阅读,比如说有的工作人员看一眼单子就知道是线上还是线下,在哪家零售店买的,或者哪家仓库给你发的货,因为流水号是一个很长的字符串,所以注定合格字段不适合用来当主键,我们设计订单表时候是那订单号作为主键的,流水号只不过是个普通的字段,也没有设计索引,下面我们来看一个具体的流水号规则,看下图:
- 第一位代表的是线上还是线下,如果是线上购物就是E,如果是线下购物那么这个字符就是S,当然这个可以随意的规定,没有人去限制你。
- 第二部分是零售店或者仓库编号,你要结合前面的标志位,比如说S代表的是线下,所以S后面的字符就是零售店的编号
- 第三部分就是商品的品类编号,因为我们在品类表中设计的编号是5位字符的,所以这里我就用5位字符来表示订单的品类编号。如果订单中购买的商品很多,品类还不相同怎么办?也没有关系你把其中最贵的商品的品类作为流水的品类就好了呀,流水号只是一个标示的字符串而已,没有什么大不了的
- 第四部分是购物日期,年月日加起来是6个字符
- 第五部分是随机数,10位字符,这是用程序动态生成的
这五个部分加在一起,一共是28个流水号,这是我们记的流水号规则,当然了同学们也可以根据实际的业务自己设计流水号。接下来模拟生成下流水号
public class Demo1{public static String createOrder(String type,String organizationId,String spId,String date){StringBuffer buffer=new StringBuffer();buffer.append(type);buffer.append(organizationId);buffer.append(spgId);buffer.append(date);//java里挺好的新的生成随机数的方法ThreadLocaleRandom.current().ints(0,9).limit(10).forEach((one)->{buffer.append(one);});return buffer.toString();}public static void main(String [] args){String code=createOrderCode("S","000012","11002","20180514");System.out.println(code);}
}
谈谈订单号和流水号的关系相关推荐
- java 生成交易快照_Java生成订单号/交易流水号
分析:既然是订单号/交易流水号,首先是不能重复,其次需考虑到性能问题. 设计如下: "HF"+时间戳+随机数+循环数 代码如下: int x = 1000; for(int i=0 ...
- 简单介绍订单号或者流水号的生成方法
一般订单号或者流水号等可能在一些平台会用到,然后我就简单的介绍一个我自己生成订单号和流水号的一个方法吧,如果程序有问题或者你有更好的生成办法,欢迎留言,留下你的文章链接,我们一起学习和进步哈. 方法简 ...
- Java 有序生成订单号或流水号
前言 最近用到了一些编号的生成规则记录一下,有序的生成订单号或者流水号 概述 第一种方式,适用于循环生成订单编号,例如有 100 条数据,需要循环生成相对应编号可以使用,下方的方法,仅限于特定 ...
- 解析各大电子商务网站订单号的生成方式
http://blog.csdn.net/yahuvi/article/details/50818789 摘要:订单是整个电子商务的核心.整个电子商务的流程也是围绕订单的状态执行的.这篇博客主要向大家 ...
- 高并发分布式系统中生成全局唯一订单号
高并发分布式系统中生成全局唯一订单号 我了解的方案如下-------------------------- 1. 使用数据库自增Id 优势:编码简单,无需考虑记录唯一标识的问题. 缺陷: 1) ...
- 电子商务网站中订单号设计有什么规则和依据吗?
https://www.zhihu.com/question/19805896#answer-31069940 你是个程序员. 隔壁老王通过你老婆找到你,说要做个"巨牛逼电商网站&qu ...
- SAP MM Inbound Delivery凭证流里不出现采购订单号?
SAP MM Inbound Delivery凭证流里不出现采购订单号? VL33N显示如下内向交货单,看其凭证流, 看行项目的document flow, 结果类似,对应的PO号码并没有显示在里面, ...
- java批量生成订单号_【笔记6-支付及订单模块】从0开始 独立完成企业级Java电商网站开发(服务端)...
支付模块 实际开发工作中经常会遇见如下场景,一个支付模块,一个订单模块,有一定依赖,一个同事负责支付模块,另一个同事负责订单模块,但是开发支付模块的时候要依赖订单模块的相关类 ,方法,或者工具类,这些 ...
- 雪花算法(snowflake) :分布式环境,生成全局唯一的订单号 | CSDN 博文精选
戳蓝字"CSDN云计算"关注我们哦! 作者 | 琦彦 责编 | 阿秃 转自 | CSDN 博客 snowflake方案 snowflake是Twitter开源的分布式ID生成算 ...
- ASP.NET 生成唯一不重复的订单号 支持多用户并发、持多数据库的实现参考(C#.NET通用权限管理系统组件源码组成部分)...
我们在日常开发项目过程中往往需要各种订单单号的产生方法,而且是支持多用户并发.支持多种数据库的,我们并不想为每个项目都写一些独立的代码去实现这些功能,往往需要有个通用的函数比较爽一些. 下面我们以C# ...
最新文章
- 网页中获取微信用户是否关注订阅号的思路
- 第五章 处理器拦截器详解——跟着开涛学SpringMVC
- java中thread实例_Java多线程2:Thread中的实例方法
- 【C语言简单说】三:整数变量和输出扩展(1)
- 音视频之使用sonic.cpp实现音频倍速播放功能
- 偷天换日?公众号广告新骗局 被坑的多是运营
- 【计算机网络笔记】物理层:概念传输媒体传输方式
- polyval polyvalm
- ITIL 4 Foundation-指导原则
- GitHub Actions 快速入门
- js Web APIs
- 黑马程序员最新版JavaWeb基础教程-学习笔记
- UEFI+GPT引导基础
- Python-3 EXCEL 操作-1
- setTimeout理解
- 1.1 机器学习与Python
- CGB2105-Day09
- 【tio-websocket】4、tio-websocket-server实现自定义集群模式
- CentOS-7.2部署DNS域名解析服务器并进行相关配置测试
- Ubuntu(Linux)上安装微信(windows应用)