自動編號會被人猜出來嫩**每天的下單量,每季度的下單量,每年的下單量...等於直接把**經營資料拱手他人...所以一般都是無法跟下單量直接掛鉤的單號
一、ecshop訂單號生成規則:
function get_order_sn()
ecshop的訂單號是會重複,ecshop生成訂單號後會做判斷,如果訂單號重複則重新提交資料
二、模仿**訂單號:
function orderid($length=4) else
file_put_contents($oid_filename,$oid);
$oid = str_pad($oid,$length,'0',0);
return $date.$oid;
}
跟**的一樣,14位。寫檔案部分自己改,或入庫,或memcache,或xx請自便……理論上如果你沒**的交易量或你每分鐘會有超過99999筆訂單不會重複。
三、和使用者id號關聯:
時間+使用者id+隨機n位
<?php
/** * php版本的自動生成有規則的訂單號(或編號)
* 日期: 2009-8-14
* 生成的格式是: 200908010001 前面幾位為當前的日期,後面五位為系統自增長型別的編號
* 原理:
* 1.獲取當前日期格式化值;
* 2.讀取檔案,上次編號的值+1最為當前此次編號的值(記錄以檔案的形式儲存)
* (下月會接著這個編號)
*/class fileeverydayserialnumber
public function getorupdatenumber($current, $start) else
} }
class ioutil
public static function write_content($content, $filename)
}//測試**
//引數含義分別是日期後自增長數的位數, 儲存的檔名稱, 日期與自增長數的分割數
$obj = new fileeverydayserialnumber(4,"everydayserialnumber.dat",",");
$current_date = date("ymd");
//$current_date = eov_;//自定義字首
echo $obj->getorupdatenumber($current_date,1);
//eov_0007
//201103130003
?>
訂單號生成
之前用uuid 因為太長改用16位因此在網上找到一下這種做法,年月日擷取 時間戳 在加隨機數 生成乙個訂單 獲取年份 var date j f c d e b h i a date gettime tostring var ordersn date new date getfullyear 2015...
mysql 訂單號主鍵 為什麼不用訂單號當做主鍵?
1.普通索引上儲存的值是主鍵的值,如果主鍵是乙個很長的字串並且建了很多普通索引,將造成普通索引占有很大的物理空間 2.自增id 在插入的時候可以保證相鄰的兩條記錄可能在同乙個資料塊,而訂單號的連續性在設計上可能沒有自增id好,導致連續插入可能在多個資料塊,增加了磁碟讀寫次數。innodb儲存引擎邏輯...
PHP訂單號的生成
前陣子,公司有個電子商務專案,需要生成訂單號。當時的考慮很簡單,取系統時間加上隨機數,或者使用 uniqid 方法。我們都知道,訂單號最基本的要求就是唯一,這個條件必須滿足。仔細考慮下上述方法,在顧客購買量少的情況下,訂單重複的可能性為零,但是在購買高蜂期生成的訂單號重複是很有可能發生的。所以上述方...