系统单据号生成规则推荐
生活随笔
收集整理的這篇文章主要介紹了
系统单据号生成规则推荐
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
對(duì)訂單類系統(tǒng)而言,單據(jù)號(hào)是非常重要的東西。一個(gè)好的單據(jù)號(hào)組成往往應(yīng)該包含豐富的元素,利于問(wèn)題的調(diào)查,業(yè)務(wù)的擴(kuò)展。
這里列舉幾種不好的單據(jù)號(hào)范例:
- 單純的數(shù)字遞增: 001, 002, 003 //無(wú)業(yè)務(wù)含義
- UUID//無(wú)業(yè)務(wù)含義,且無(wú)順序概念
- 日期+用戶ID//當(dāng)天同一用戶發(fā)生兩筆業(yè)務(wù)時(shí)可能重復(fù)
好的單據(jù)號(hào)規(guī)則
| 表示當(dāng)前單據(jù)號(hào)是屬于哪個(gè)系統(tǒng)的,比如001表示支付系統(tǒng),002表示團(tuán)購(gòu)系統(tǒng) | 表示這筆單據(jù)是發(fā)生在哪一天的,yyyyMMdd格式字符串 | 可放8位數(shù)字,支持一億的sequence,值可以來(lái)自當(dāng)前表的主鍵ID,不滿8位的左邊統(tǒng)一補(bǔ)0,這個(gè)保證了最終的唯一性 |
如果當(dāng)前系統(tǒng)有子單據(jù)概念,比如訂單系統(tǒng)里還有物流單的概念,則可以加入子業(yè)務(wù)單標(biāo)識(shí)
| - | - | 001表示物流單,002表示退款單 | - |
如果你的數(shù)據(jù)庫(kù)是分庫(kù)分表的,則強(qiáng)烈建議在單據(jù)號(hào)中加入分庫(kù)分表位,將有很大的收益
| - | - | 0102表示01庫(kù)的02號(hào)表 | - |
總之好的單據(jù)號(hào)可以獲得如下收益:
- 根據(jù)單據(jù)號(hào)馬上可以知道這個(gè)來(lái)自哪個(gè)系統(tǒng),發(fā)生在哪一天
- 在這個(gè)系統(tǒng)中屬于具體哪一個(gè)子業(yè)務(wù)
- 這筆單子是屬于哪個(gè)庫(kù)哪個(gè)表的
- 在程序中只要你能獲得單據(jù)號(hào),就能通過(guò)截取的方式獲得很多有價(jià)值的信息,便于邏輯的處理。久而久之你會(huì)不自主讓單據(jù)號(hào)貫穿整個(gè)系統(tǒng),也樂(lè)意在日志中打印,將極大方便你解決問(wèn)題
- 當(dāng)整個(gè)系統(tǒng)群都遵守統(tǒng)一的標(biāo)準(zhǔn)時(shí),你會(huì)發(fā)現(xiàn)當(dāng)進(jìn)入任意一個(gè)新系統(tǒng)時(shí),只要給你這個(gè)系統(tǒng)的單據(jù)號(hào)則你都能快速定位日志,代碼,數(shù)據(jù)庫(kù)表,非常利于學(xué)習(xí)
讓我們擁抱好的單據(jù)號(hào)生成習(xí)慣吧!
總結(jié)
以上是生活随笔為你收集整理的系统单据号生成规则推荐的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 从淘宝 UWP 的新功能 -- 比较页面
- 下一篇: 背水一战 Windows 10 (36)