首页 > 编程 > PHP > 正文

如何通过php 进行ID前缀格式化类

2020-03-22 16:51:53
字体:
来源:转载
供稿:网友
数据库表通常都会有一个字段类型为int,命名为id的自增主键。

优点:使用int类型可自增,且比字符类型节省存储空间。
缺点:id是数值型,当要查询一个id对应的数据时,很难根据id判断是哪一个数据表。

因此我们在存储时,应使用int,而在显示时对id进行一些处理,使很容易分辨这个id属于哪一个表。

编写了下面这个类,实现对id增加前缀及对已加前缀的id还原。

Prefix.html' target='_blank'>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 = user // 用户 const ORDER_TYPE = order // 订单 const MESSAGE_TYPE = message // 消息 // 前缀设定 private static $prefix = array( self::USER_TYPE = U , self::ORDER_TYPE = O , self::MESSAGE_TYPE = M  ); /** * 创建带前缀的id * @param Int $id id * @param Int $prefix_type 类型 * @return String public static function getPrefixId($id, $prefix_type= ){ // 有自定义前缀类型 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( //d+/ , $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( /[A-Za-z]+/ , $prefix_id, $arr); if(isset($arr[0])){ $prefix = $arr[0]; // 获取前缀 $prefixs = array_flip(self::$prefix); if(isset($prefixs[$prefix])){ return $prefixs[$prefix]; } return } // class end? 

demo.php

 ?phprequire Prefix.class.php // 原始id$user_id = 1001;$order_id = 2016102743765214;$message_id = 109283;echo pre // 已加前缀idecho 1.id加前缀 .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 2.根据已加前缀id获取前缀类型 .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 3.还原为原始id .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 /pre ? 

输出:

1.id加前缀U1001O2016102743765214M1092832.根据已加前缀id获取前缀类型ordermessage3.还原为原始id10012016102743765214109283

自定义的前缀常量,可以根据需求自行创建。

本文讲解了如何通过php 进行ID前缀格式化类,更多相关内容请关注php 。

相关推荐:

如何通过php 将print_r处理后的数据还原为原始数组的方法

通过php中的PDO判断连接是否可用的方法

通过php 判断页面或图片是否经过gzip压缩

以上就是如何通过php 进行ID前缀格式化类的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表