Ⅰ javaScript 中 var s=「訂單號:12345」如何取 到123456
方法很多種,如用split(":"),得到的就是一個以:分割的結果數組
Ⅱ 如何生成訂單號比較好
由於我在工作中遇到這個問題,藉此與大家分享一下各大電子商務網站訂單號的生成方式。
它是您在購物網站購物後獲得的訂單號,記錄的是購物訂單信息。
在您需要與購物網站進行訂單查詢等操作時,需要給購物網站提供商家訂單號。
如果採用單資料庫來存儲的話,隨著訂單量的增加,單庫的寫壓力增大,造成資料庫伺服器性能下降。一般會採用分庫來緩解資料庫伺服器的壓力。
那麼怎麼來進行分庫呢?
web來源訂單,存入web訂單庫。
CallCenter來源訂單,存入CallCenter訂單庫。
wap來源訂單,存入wap訂單庫。
最終,將這三種類型的資料庫同步到訂單主庫中。
問題來了,怎麼把不同的訂單同步到訂單主庫呢?
電商網站一般利用訂單號來作為訂單表的主鍵。因此,我們必須保證訂單號不重復,才能將訂單安全的同步到訂單主庫中。
這個大家都明白,主要保證訂單號不重復。
訂單編號不能透露你公司的真實運營信息,比如你的訂單就是流水號的話,那麼別人就可以從訂單號推測出你公司的整體運營概括了。所以訂單編碼必須是除了你們公司少部分人外,其他人基本看不懂的。可以參考京東和淘寶的編碼規則。
因為大規模的隨機碼隨機生成,因為本身就沒有意義所以無所謂泄密了。但是事實上這種編碼規則在實現上會有很大問題的。隨機碼滿足第二點安全性要求,為了滿足唯一性,那就得在生成隨機碼的時候對比歷史數據是否有重復,如果你的訂單數量到達了十萬次,你每次生成訂單編碼時就得對比十萬條歷史數據。
隨機碼就不能在編碼中使用了嗎?小規模的隨機碼是可以使用的,比如2~3位,這種隨機碼一般都是和流水號等結合使用,主要作用是為了隱藏流水號的真實數據而進行使用的。
主要針對編碼中有時間的設定。
訂單號的作用就是便於查詢。一般正常使用場景應該是訂單出異狀或者退貨的時候,用戶將訂單號報給客服,由客服進行查詢。所以一般在10~15位為好。目前京東11位,淘寶16位。
比如「業務編碼 + 時間戳 + 機器編號[前4位] + 隨機4位數 + 毫秒數」。
說明:業務編碼(OrderType: Web=1 CallCenter=2 Wap=3) 機器編號(用來表示由那台伺服器生成的訂單)
偽代碼如下:
訂單號的生成方案,需要根據目前的訂單量而定;因為各種方案都有各自的使用場景。
Ⅲ 淘寶的訂單號是怎麼生成和設計的呢知道的來討論下
淘寶的訂單號是自然生成的。只要有客戶下單後就會自動生成一個訂單號。
查看訂單號的方法:
1、首先先打開一個瀏覽器,然後在網路中輸入「淘寶網」,然後點擊「網路一下」按鈕。
Ⅳ 生成訂單號,要求是唯一的,如何實現
guid
Globally Unique Identifier(全球唯一標識符) 也稱作 UUID(Universally Unique IDentifier)
GUID/UUID是通過特定演算法產生的一個二進制長度為128位的數字,
在空間上和時間上具有唯一性,保證同一時間不同地方產生的數字不同,
在公元3400年以前產生的UUID/GUID與任何其他產生過的UUIDs/GUIDs都不相同。
在需要GUID的時候,可以完全由演算法自動生成,不需要一個權威機構來管理。
GUID的長度固定,並且相對而言較短小,非常適合於排序、標識和存儲。
Ⅳ 用JSP如何產生連續的訂單號,NO.00001 NO.00002
使用Java+資料庫實現
由於確定NO.00001裡面有不規則的字母+特殊字元+數字
所有查詢出資料庫中最後一行數據,並獲取編號例如:NO.00099
已知有2個字元一個特殊字元,那麼我們把字元串截取掉,把字元、特殊字元和數字分開
Stringstr="NO.00099";
StringtmpW=str.substring(0,2);//NO.
StringtmpN=str.substring(3,str.length());//00099
intnum=Integer.valueOf(tmpN)+1;
Stringtmp_num=num+"";
for(inti=5-tmp_num.length();i>0;i--){
tmp_num="0"+tmp_num;
}
//最終要的結果NO.00100
Stringresult=tmpW+tmp_num;
查詢最後一個id的語句
selecttop1idfrom表orderbyiddesc
Ⅵ 如何生成一個這種形式的訂單號
DateTime dttime=DateTime.Now;
string str=dttime.Year.ToString()+dttime.Month+dttime.Day;
string sql="select top 1 訂單號 from 訂單表 order by 訂單號 desc";
執行該語句,返回現在資料庫中最近一次生成的訂單號.
然後對其進行操作:(比如最近一次生成訂單號為 str2 )
int ii=Convert.ToInt32(str2.SubString(str2.Lenght-4))+1;
int len=ii.ToString().Length;
string str3="";
switch (len){
case 1:
str3="000"+ii.ToString();
break;
case 2:
str3="00"+ii.ToString();
break;
case 3:
str3="0"+ii.ToString();
break;
}
最後.你當前的訂單號就是:
str+=str3;
---------------------
rebinglunlun - 高級魔法師 六級
願聽其詳~~
Ⅶ 給個絕對不重復的生成訂單號的思路或者邏輯!
多用戶的話,簡單一點的,可以由用戶ID(數字)、時間、隨機數組合生成,因為用戶ID是唯一的,生成的訂單號也就絕對不會重復了。
Ⅷ 怎麼用JS或php實現自動生成單據編號(以10+當天日期的格式)
php:
$number
=
"10".date("Ymd",time());
可以得到10開頭緊接年月日及時間(到秒)如1020120603
$number
=
"10".date("YmdHis",time());
可以得到10開頭緊接年月日及時間(到秒)如1020120603231120
如果怕有重復可以在接一些隨機數
$number
.=
rand(1000,9999);
Ⅸ 如何生成唯一訂單號
首先,訂單號有3個性質:1.唯一性 2.不可推測性 3.效率性
唯一性和不可推測性不用說了,效率性是指不能頻繁的去資料庫查詢以避免重復。
況且滿足這些條件的同時訂單號還要足夠的短。
我在java下定製的訂單號生成方式如下:
int r1=(int)(Math.random()*(10));//產生2個0-9的隨機數
int r2=(int)(Math.random()*(10));
long now = System.currentTimeMillis();//一個13位的時間戳
String paymentID =String.valueOf(r1)+String.valueOf(r2)+String.valueOf(now);// 訂單ID
目前規則來看,兩個人在同一微秒提交訂單重復的概率為1%
訂單效果:251393292999921
望採納!