Heim  >  Artikel  >  Backend-Entwicklung  >  So führen Sie eine ID-Präfix-Formatierungsklasse über PHP durch

So führen Sie eine ID-Präfix-Formatierungsklasse über PHP durch

jacklove
jackloveOriginal
2018-06-20 18:01:201897Durchsuche

Datenbanktabellen haben normalerweise einen automatisch inkrementierenden Primärschlüssel mit dem Feldtyp int und der benannten ID.

Vorteile: Die Verwendung des int-Typs kann automatisch inkrementiert werden und spart Speicherplatz als der Zeichentyp.
Nachteile: ID ist ein numerischer Typ. Wenn Sie die einer ID entsprechenden Daten abfragen möchten, ist es schwierig, anhand der ID zu bestimmen, auf welcher Datentabelle sie basiert.

Daher sollten wir beim Speichern int verwenden und beim Anzeigen etwas Verarbeitung an der ID vornehmen, damit leicht erkennbar ist, zu welcher Tabelle die ID gehört.

Die folgende Klasse wurde geschrieben, um Präfixe zu IDs hinzuzufügen und vorangestellte IDs wiederherzustellen.

Prefix.class.php

<?php/**
 * ID前缀格式化类
 * Date:    2016-10-27
 * Author:  fdipzone
 * Ver:     1.0
 *
 * Func
 * public getPrefixId    生成已加前缀的id
 * public getId          还原为id
 * public getPrefixType  根据已加前缀id获取前缀类型
 */class Prefix{ // class start

    // 定义前缀常量
    const USER_TYPE = &#39;user&#39;;       // 用户
    const ORDER_TYPE = &#39;order&#39;;     // 订单
    const MESSAGE_TYPE = &#39;message&#39;; // 消息

    // 前缀设定
    private static $prefix = array(        self::USER_TYPE => &#39;U&#39;,        self::ORDER_TYPE => &#39;O&#39;,        self::MESSAGE_TYPE => &#39;M&#39;
    );    /**
     * 创建带前缀的id
     * @param  Int     $id          id
     * @param  Int     $prefix_type 类型
     * @return String
     */
    public static function getPrefixId($id, $prefix_type=&#39;&#39;){
        // 有自定义前缀类型
        if(isset(self::$prefix[$prefix_type])){            return self::$prefix[$prefix_type].$id;
        }        // 没有自定义前缀类型
        return $id;
    }    /**
     * 还原为id
     * @param  String $prefix_id 已加前缀id 
     * @return Int
     */
    public static function getId($prefix_id){
        preg_match(&#39;/\d+/&#39;, $prefix_id, $arr);        if(isset($arr[0])){            return $arr[0];
        }        return 0;
    }    /**
     * 根据已加前缀id获取前缀类型
     * @param  String $prefix_id 已加前缀id 
     * @return Int
     */
    public static function getPrefixType($prefix_id){

        // 获取id前缀
        preg_match(&#39;/[A-Za-z]+/&#39;, $prefix_id, $arr);        if(isset($arr[0])){            $prefix = $arr[0];            // 获取前缀
            $prefixs = array_flip(self::$prefix);            if(isset($prefixs[$prefix])){                return $prefixs[$prefix];
            }
        }        return &#39;&#39;;
    }

} // class end?>

demo.php

<?phprequire &#39;Prefix.class.php&#39;;// 原始id$user_id = 1001;$order_id = 2016102743765214;$message_id = 109283;echo &#39;<pre class="brush:php;toolbar:false">&#39;;// 已加前缀idecho &#39;1.id加前缀&#39;.PHP_EOL;$prefix_user_id = Prefix::getPrefixId($user_id, Prefix::USER_TYPE);$prefix_order_id = Prefix::getPrefixId($order_id, Prefix::ORDER_TYPE);$prefix_message_id = Prefix::getPRefixId($message_id, Prefix::MESSAGE_TYPE);echo $prefix_user_id.PHP_EOL;echo $prefix_order_id.PHP_EOL;echo $prefix_message_id.PHP_EOL.PHP_EOL;// 前缀类型echo &#39;2.根据已加前缀id获取前缀类型&#39;.PHP_EOL;echo Prefix::getPrefixType($prefix_user_id).PHP_EOL;echo Prefix::getPrefixType($prefix_order_id).PHP_EOL;echo Prefix::getPrefixType($prefix_message_id).PHP_EOL.PHP_EOL;// 还原为原始idecho &#39;3.还原为原始id&#39;.PHP_EOL;echo Prefix::getId($prefix_user_id).PHP_EOL;echo Prefix::getId($prefix_order_id).PHP_EOL;echo Prefix::getId($prefix_message_id).PHP_EOL.PHP_EOL;echo &#39;
';?>

Ausgabe:

1.id加前缀
U1001
O2016102743765214
M1092832.根据已加前缀id获取前缀类型
user
order
message3.还原为原始id10012016102743765214109283

Benutzerdefinierte Präfixkonstante, die entsprechend Ihren Anforderungen erstellt werden kann.

In diesem Artikel wird erläutert, wie Sie mit PHP die ID-Präfixformatierung durchführen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So print_r über PHP Methode zum Wiederherstellen der verarbeiteten Daten im ursprünglichen Array

Beurteilen Sie die Verbindung über PDO in PHP Verfügbare Methoden

Verwenden Sie PHP, um festzustellen, ob die Seite oder das Bild gzip-komprimiert wurde

Das obige ist der detaillierte Inhalt vonSo führen Sie eine ID-Präfix-Formatierungsklasse über PHP durch. 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