Heim  >  Artikel  >  Backend-Entwicklung  >  Erstellen Sie eine eindeutige Zahlenklasse durch automatisches Inkrementieren der ID in PHP

Erstellen Sie eine eindeutige Zahlenklasse durch automatisches Inkrementieren der ID in PHP

jacklove
jackloveOriginal
2018-06-20 17:12:263176Durchsuche

Während des Entwicklungsprozesses verwenden unsere Datentabellen im Allgemeinen automatisch inkrementierende Zahlen als Primärschlüssel der ID, und ID ist ein numerischer Typ, der nicht leicht zu verstehen ist. Nachdem wir die ID gemäß einem bestimmten Format in eine Zahl umgewandelt haben, ist es anhand der Zahl leicht zu erkennen, was der Inhalt darstellt.

Zum Beispiel die Bestelltabellen-ID=20160111197681234 Wir wissen jedoch nicht, ob es sich bei dieser ID um die ID der Bestelltabelle handelt Zur Nummer O-20160111197681234 ist es sehr schwierig zu erkennen, dass es sich um einen Datensatz der Bestelltabelle handelt, und kann dann anhand der ID in der Bestelltabelle gesucht werden.

Regeln für die Nummernerstellung

1. Mit automatisch inkrementierender ID generieren, um Eindeutigkeit sicherzustellen

So kurz wie möglich

Sie können den Rest der Zahlen verwenden, um Buchstaben zu entsprechen, um eine kürzere Zahl zu erstellen

Algorithmusprinzip

1. Fügen Sie ein benutzerdefiniertes Präfix zur Identifizierung hinzu

2 . Das Format besteht aus Präfix + Buchstaben + Zahlen. Für überschüssige Zahlen verwenden Sie die Restzahlmethode und verwenden Sie Buchstaben, um

id=1 zu entsprechen

Präfix=F

Die Nummer behält 3 Ziffern
Die erstellte Nummer ist:
F-A-001


Der Code lautet wie folgt:

IDCode.class.php

<?php/**
 * php 根据自增id创建唯一编号类
 * Date:    2016-11-27
 * Author:  fdipzone
 * Ver:     1.0
 *
 * Func
 * Public create 创建编号
 */class IDCode{ // class start

    /**
     * 创建编号
     * @param  Int    $id         自增id
     * @param  Int    $num_length 数字最大位数
     * @param  String $prefix     前缀
     * @return String
     */
    public static function create($id, $num_length, $prefix){

        // 基数
        $base = pow(10, $num_length);        // 生成字母部分
        $pision = (int)($id/$base);        $word = &#39;&#39;;        while($pision){            $tmp = fmod($pision, 26); // 只使用26个大写字母
            $tmp = chr($tmp + 65);      // 转为字母
            $word .= $tmp;            $pision = floor($pision/26);
        }        if($word==&#39;&#39;){            $word = chr(65);
        }        // 生成数字部分
        $mod = $id % $base;        $digital = str_pad($mod, $num_length, 0, STR_PAD_LEFT);        $code = sprintf(&#39;%s-%s-%s&#39;, $prefix, $word, $digital);        return $code;

    }

} // class end?>

demo.php

<?phprequire &#39;IDCode.class.php&#39;;$test_ids = array(1,9,10,99,100,999,1000,1009,2099,3999,9999,14999,99999);foreach($test_ids as $test_id){    echo $test_id.&#39; = &#39;.IDCode::create($test_id, 3, &#39;F&#39;).&#39;<br>&#39;;
}?>
Ausgabe:
1 = F-A-0019 = F-A-00910 = F-A-01099 = F-A-099100 = F-A-100999 = F-A-9991000 = F-B-0001009 = F-B-0092099 = F-C-0993999 = F-D-9999999 = F-J-99914999 = F-O-99999999 = F-VD-999


Download-Adresse des Quellcodes: Zum Anzeigen klicken
Während des Entwicklungsprozesses werden unsere Datentabellen angezeigt Im Allgemeinen werden selbsterhöhende Zahlen als ID-Primärschlüssel verwendet, und die ID ist ein numerischer Typ, der nicht leicht zu verstehen ist. Nachdem wir die ID gemäß einem bestimmten Format in eine Zahl umgewandelt haben, ist es anhand der Zahl leicht zu erkennen, was der Inhalt darstellt.

Zum Beispiel die Bestelltabellen-ID=

20160111197681234

Wir wissen jedoch nicht, ob es sich bei dieser ID um die ID der Bestelltabelle handelt Zur Nummer

O-20160111197681234 ist es sehr schwierig zu erkennen, dass es sich um einen Datensatz der Bestelltabelle handelt, und kann dann anhand der ID in der Bestelltabelle gesucht werden.
Regeln für die Nummernerstellung

1. Mit automatisch inkrementierender ID generieren, um Eindeutigkeit sicherzustellen

So kurz wie möglich

Sie können den Rest der Zahlen verwenden, um Buchstaben zu entsprechen, um eine kürzere Zahl zu erstellen


Algorithmusprinzip

1. Fügen Sie ein benutzerdefiniertes Präfix hinzu, um

2. Das Format besteht aus Präfix + Buchstaben + Zahlen. Wenn es mehr als 10 Ziffern gibt, werden Buchstaben verwendet, um den Rest zu finden:

id=1

Präfix= F

Die Nummer behält 3 Ziffern

, dann lautet die erstellte Nummer:

F-A-001




Die Der Code lautet wie folgt:

IDCode.class.php

<?php/**
 * php 根据自增id创建唯一编号类
 * Date:    2016-11-27
 * Author:  fdipzone
 * Ver:     1.0
 *
 * Func
 * Public create 创建编号
 */class IDCode{ // class start

    /**
     * 创建编号
     * @param  Int    $id         自增id
     * @param  Int    $num_length 数字最大位数
     * @param  String $prefix     前缀
     * @return String
     */
    public static function create($id, $num_length, $prefix){

        // 基数
        $base = pow(10, $num_length);        // 生成字母部分
        $pision = (int)($id/$base);        $word = &#39;&#39;;        while($pision){            $tmp = fmod($pision, 26); // 只使用26个大写字母
            $tmp = chr($tmp + 65);      // 转为字母
            $word .= $tmp;            $pision = floor($pision/26);
        }        if($word==&#39;&#39;){            $word = chr(65);
        }        // 生成数字部分
        $mod = $id % $base;        $digital = str_pad($mod, $num_length, 0, STR_PAD_LEFT);        $code = sprintf(&#39;%s-%s-%s&#39;, $prefix, $word, $digital);        return $code;

    }

} // class end?>

demo.php

<?phprequire &#39;IDCode.class.php&#39;;$test_ids = array(1,9,10,99,100,999,1000,1009,2099,3999,9999,14999,99999);foreach($test_ids as $test_id){    echo $test_id.&#39; = &#39;.IDCode::create($test_id, 3, &#39;F&#39;).&#39;<br>&#39;;
}?>

Ausgabe:

1 = F-A-0019 = F-A-00910 = F-A-01099 = F-A-099100 = F-A-100999 = F-A-9991000 = F-B-0001009 = F-B-0092099 = F-C-0993999 = F-D-9999999 = F-J-99914999 = F-O-99999999 = F-VD-999
In diesem Artikel wird erläutert, wie Sie mithilfe der automatischen Inkrementierungs-ID in PHP eine eindeutige Zahlenklasse erstellen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website. Verwandte Empfehlungen:

Erläuterung zur PHP-optimierten Seitenausgabe, kompatibel mit Beispielen für den Zugriff von Suchmaschinenrobotern

über PHP Rufen Sie ffmpeg auf, um Videoinformationen zu erhalten


Verwenden Sie MySQL, um zu bestimmen, ob der Punkt innerhalb des angegebenen Polygonbereichs liegt

Das obige ist der detaillierte Inhalt vonErstellen Sie eine eindeutige Zahlenklasse durch automatisches Inkrementieren der ID in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn