对订单类系统而言,单据号是很是重要的东西。一个好的单据号组成每每应该包含丰富的元素,利于问题的调查,业务的扩展。数据库
这里列举几种很差的单据号范例:学习
好的单据号规则日志
系统标识 | 日期 | sequence空间 |
---|---|---|
表示当前单据号是属于哪一个系统的,好比001表示支付系统,002表示团购系统 | 表示这笔单据是发生在哪一天的,yyyyMMdd格式字符串 | 可放8位数字,支持一亿的sequence,值能够来自当前表的主键ID,不满8位的左边统一补0,这个保证了最终的惟一性 |
若是当前系统有子单据概念,好比订单系统里还有物流单的概念,则能够加入子业务单标识字符串
系统标识 | 日期 | 子业务单标识 | sequence空间 |
---|---|---|---|
- | - | 001表示物流单,002表示退款单 | - |
若是你的数据库是分库分表的,则强烈建议在单据号中加入分库分表位,将有很大的收益table
系统标识 | 日期 | 分库分表位 | sequence空间 |
---|---|---|---|
- | - | 0102表示01库的02号表 | - |
总之好的单据号能够得到以下收益:扩展
让咱们拥抱好的单据号生成习惯吧!程序