電子商務(wù)網(wǎng)站中訂單號設(shè)計(jì)有什么規(guī)則和依據(jù)嗎?
時(shí)間:2023-04-04 05:34:01 | 來源:電子商務(wù)
時(shí)間:2023-04-04 05:34:01 來源:電子商務(wù)
因?yàn)榍岸螘r(shí)間涉及到設(shè)計(jì)電商訂單編號的問題,所以對這個(gè)問題確實(shí)研究了一段時(shí)間,有一些收獲分享給大家。
本文主要是討論電商的訂單編碼規(guī)則,如果是對內(nèi)的ERP系統(tǒng),訂單編碼則以簡單易懂為主,因?yàn)橥獠咳艘部床坏健?br>
不廢話,直接干貨。
訂單命名的幾種規(guī)則:1、不重復(fù)。這點(diǎn)我相信大家都懂,訂單的唯一性不用解釋。
2、安全性。你的訂單編號不能透露你公司的真實(shí)運(yùn)營信息,比如你的訂單就是流水號的話,那么別人就可以從訂單號推測出你公司的整體運(yùn)營概括了。所以訂單編碼必須是除了你們公司少部分人外,其他人基本看不懂的。參考京東和淘寶的編碼規(guī)則,基本別人是搞不清是什么意思的。
其實(shí)最好的防泄漏編碼規(guī)則就是在編碼中不要加入任何和公司運(yùn)營的數(shù)據(jù)。
3、不能使用大規(guī)模隨機(jī)碼。很多人分析訂單編碼規(guī)則的時(shí)候,第一個(gè)念頭肯定是不重復(fù)唯一性,那么第二個(gè)念頭可能就是安全性,那么同時(shí)滿足前兩者的第三個(gè)念頭就是隨機(jī)碼了。因?yàn)榇笠?guī)模的隨機(jī)碼隨機(jī)生成,因?yàn)楸旧砭蜎]有意義所以無所謂泄密了。但是事實(shí)上這種編碼規(guī)則在實(shí)現(xiàn)上會有很大問題的。
隨機(jī)碼滿足第二點(diǎn)安全性要求,為了滿足第一點(diǎn)不重復(fù)特性,那就得在生成隨機(jī)碼的時(shí)候?qū)Ρ葰v史數(shù)據(jù)是否有重復(fù),如果你的訂單數(shù)量到達(dá)了十萬次,你每次生成訂單編碼時(shí)就得對比十萬條歷史數(shù)據(jù),你可想而知會造成什么巨大問題。
但是難道隨機(jī)碼就不能在編碼中使用了嗎?小規(guī)模的隨機(jī)碼是可以使用的,比如2~3位,這種隨機(jī)碼一般都是和流水號等結(jié)合使用,主要作用是為了隱藏流水號的真實(shí)數(shù)據(jù)而進(jìn)行使用的。
PS:在這里感謝
@馬馳@dad ni @bao xu(這個(gè)不知道為何@不到)同學(xué)的討論,馬馳同學(xué)實(shí)際測試估算了生成隨機(jī)碼并且檢測重復(fù)所花費(fèi)的時(shí)間在納秒級別。但是我還是保持原來觀點(diǎn),覺得這種生成規(guī)則存在方向性問題,可能會造成檢測時(shí)間過長的問題出現(xiàn)。
希望大家積極參與討論。
4、防止并發(fā)。這條規(guī)則主要針對編碼中有時(shí)間的設(shè)定。
5、控制位數(shù)。這點(diǎn)很好理解,訂單號的作用就是便于查詢。
一般正常使用場景應(yīng)該是訂單出異狀或者退貨的時(shí)候,用戶將訂單號報(bào)給客服,由客服進(jìn)行查詢。
所以一般在10~15位為好。
京東10位,淘寶15位。
推薦的幾種編碼規(guī)則:年月日時(shí)分秒+用戶ID(命名用戶ID時(shí)也要注意,不要用流水號??梢圆捎脜^(qū)域ID+隨機(jī)碼+流水號+隨機(jī)碼方式)
1、唯一性:時(shí)間是單向的,確保唯一性。
2、安全性:確保用戶ID安全即可。
3、隨機(jī)碼不參與判斷,因?yàn)橹皵?shù)據(jù)已確保無重復(fù)。
4、在同1秒鐘,同一用戶是不會產(chǎn)生2個(gè)訂單編碼的,所以可以防并發(fā)。
5、位數(shù)可能會在20位之內(nèi),位數(shù)比較多。
年月日時(shí)分秒微秒+隨機(jī)碼(2)+流水號+隨機(jī)碼(3)1、唯一性:時(shí)間是單向的,確保唯一性。
2、安全性:確保流水號不會識別出即可。
3、隨機(jī)碼的位數(shù)和前后都是保密的,所以如果不清楚這一點(diǎn)的話,是很難判斷出流水號的位數(shù)的。因?yàn)橥瑫r(shí)產(chǎn)生的訂單數(shù)量很多,編碼不具備線性對比功能。就算知道了流水號,可以在初始化時(shí)進(jìn)行賦值。
4、在同1秒鐘,同一用戶是不會產(chǎn)生2個(gè)訂單編碼的,所以可以防并發(fā)。
5、位數(shù)可能會在20位之內(nèi),位數(shù)比較多。
PS:多謝大家的點(diǎn)贊,但我更希望大家能留言參與討論。
畢竟如果搜到這問題的都是想解決這問題的,進(jìn)行思考參與討論,才是大家的原本目的。
關(guān)鍵詞:規(guī)則,依據(jù),設(shè)計(jì),商務(wù),電子