訂單號一般生成規則

訂單號規則:

訂單命名的幾種規則:

1、不重複。

2、安全性。

你的訂單編號不能透露你公司的真實運營資訊,比如你的訂單就是流水號的話,那麼別人就可以從訂單號推測出你公司的整體運營概括了。所以訂單編碼必須是除了你們公司少部分人外,其他人基本看不懂的。參考京東和淘寶的編碼規則,基本別人是搞不清是什麼意思的。

其實最好的防洩漏編碼規則就是在編碼中不要加入任何和公司運營的資料。

3、不能使用大規模隨機碼。

很多人分析訂單編碼規則的時候,第一個念頭肯定是不重複唯一性,那麼第二個念頭可能就是安全性,那麼同時滿足前兩者的第三個念頭就是隨機碼了。因為大規模的隨機碼隨機生成,因為本身就沒有意義所以無所謂洩密了。但是事實上這種編碼規則在實現上會有很大問題的。

隨機碼滿足第二點安全性要求,為了滿足第一點不重複特性,那就得在生成隨機碼的時候對比歷史資料是否有重複,如果你的訂單數量到達了十萬次,你每次生成訂單編碼時就得對比十萬條歷史資料,你可想而知會造成什麼巨大問題。

但是難道隨機碼就不能在編碼中使用了嗎?小規模的隨機碼是可以使用的,比如2~3位,這種隨機碼一般都是和流水號等結合使用,主要作用是為了隱藏流水號的真實資料而進行使用的。

4、防止併發。

這條規則主要針對編碼中有時間的設定。

5、控制位數。

這點很好理解,訂單號的作用就是便於查詢。

一般正常使用場景應該是訂單出異狀或者退貨的時候,使用者將訂單號報給客服,由客服進行查詢。

所以一般在10~15位為好。

京東10位,淘寶15位。

推薦的幾種編碼規則:

年月日時分秒+使用者ID(命名使用者ID時也要注意,不要用流水號。可以採用區域ID+隨機碼+流水號+隨機碼方式)

1、唯一性:時間是單向的,確保唯一性。

2、安全性:確保使用者ID安全即可。

3、隨機碼不參與判斷,因為之前資料已確保無重複。

4、在同1秒鐘,同一使用者是不會產生2個訂單編碼的,所以可以防併發。

5、位數可能會在20位之內,位數比較多。

年月日時分秒微秒+隨機碼(2)+流水號+隨機碼(3)

1、唯一性:時間是單向的,確保唯一性。

2、安全性:確保流水號不會識別出即可。

3、隨機碼的位數和前後都是保密的,所以如果不清楚這一點的話,是很難判斷出流水號的位數的。因為同時產生的訂單數量很多,編碼不具備線性對比功能。就算知道了流水號,可以在初始化時進行賦值。

4、在同1秒鐘,同一使用者是不會產生2個訂單編碼的,所以可以防併發。

5、位數可能會在20位之內,位數比較多。

訂單號常見的幾種方式:

1。利用資料庫主鍵值產生一個自增長的訂單號(訂單號即資料表的主鍵)

2。日期+自增長數字的訂單號(比如:2012040110235662)

3。產生隨機的訂單號(65865325365966)

4。字母+數字字串式,字母有包含特別意義,C02356652

訂單號設計原則: 按需設計

用來檢索訂單詳細資訊的唯一特徵碼,可以利用訂單號檢索到下單日期、產品類別、顏色、尺碼(或款式)、倉位等資訊,訂單號包含過多的資訊有點“畫蛇添足”的意味!只要按需設計即可!

訂單號設計使用者體驗規則:

1。訂單號無重複性;

2。如果方便客服的話,最好是“日期+自增數”樣式的訂單號,客服一看便知道訂單是否在退貨保障期限內容;

3。訂單號長度儘量保持短(10位以內),方便使用者,尤其電話投訴時,長的號碼報錯機率高,影響客服效率;

4。訂單號儘量保持數字型(純整數),在資料庫訂單索引查詢中,長整數字型的資料索引與檢索效率,遠遠高於文字型,因此儘量避免“字母+數字字串式”!

參考資料:訂單號生成規則