ホームページ  >  記事  >  バックエンド開発  >  PHPで一意の注文番号を生成する方法

PHPで一意の注文番号を生成する方法

藏色散人
藏色散人オリジナル
2020-11-17 09:27:464819ブラウズ

一意の注文番号を生成する

php メソッド: 1. データベースの主キー値を使用して、自己増加する注文番号を生成します; 2. 「日付の自己増加番号」の注文番号を実装します; 3.ランダムな順序番号; 4.「英数字文字列型」の順序番号を実装します。

PHPで一意の注文番号を生成する方法

推奨: 「PHP ビデオ チュートリアル

PHP で一意の注文番号を生成する方法の概要

//商品编号生成
(YmdHi)拼接上兑换表生成的Id
//订单号的生成
(YmdHi)拼接上订单表生成的Id
echo date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

注文番号の一般的な方法:

1. データベースの主キー値を使用して、自己増加する注文番号を生成します (注文番号はデータ テーブルの主キー)

2. 自動的に増加する日付番号を持つ注文番号 (例: 2012040110235662)

3. ランダムな注文番号を生成します (65865325365966)

4. 英数字の文字列形式、文字には特別な意味があります、C02356652

注文番号の設計原則: オンデマンドの設計

注文の詳細を取得するために使用される固有の機能コードは、注文番号を使用して取得できます。 注文日、製品カテゴリ、色、サイズ (またはスタイル)、倉庫などの情報が含まれている注文番号には、あまりにも多くの情報が含まれているため、少し「余分」です。あとは思い通りにデザインするだけ!

注文番号設計のユーザー エクスペリエンス ルール:

1. 注文番号の重複は禁止;

2. 顧客サービスに便利な場合は、 「日付自動インクリメント」形式の注文番号を使用すると、カスタマー サービスは注文が返品保証期間内かどうかを一目で知ることができます。

3.注文番号はできるだけ短く (10 桁以内)、特に電話で苦情を申し立てる場合にユーザーにとって便利です。長い番号はエラー報告の可能性が高く、顧客サービスの効率に影響します。

4. 注文番号を数値タイプ (純粋な整数) に保つようにしてください。データベースの順序インデックス クエリでは、長整数数値タイプのデータのインデックス作成と検索の効率ははるかに低くなります。テキストよりもはるかに効率が高いため、「英数字」を避けるようにしてください。弦"!

ショッピング モール プロジェクトを実行する場合、多くの場合、一意の注文番号を生成する必要があります。その概要を次に示します。

方法 1:

return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

方法 2: 使用中。 。 。

return date('Ymd').substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8);

方法 3: 以前に使用されました。 。 。

public function make_order($user_id)
{
return mt_rand(10,99)
. sprintf('%010d',time() - 946656000)
. sprintf('%03d', (float) microtime() * 1000)
. sprintf('%03d', (int) $user_id % 1000);
}

方法 4:

$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));

以上がPHPで一意の注文番号を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。