Maison  >  Article  >  développement back-end  >  Utilisation de l'UUID pour implémenter des opérations de table de données dans le framework PHP Laravel

Utilisation de l'UUID pour implémenter des opérations de table de données dans le framework PHP Laravel

不言
不言original
2018-05-31 15:56:241821parcourir

Cet article présente principalement l'utilisation de l'UUID pour implémenter des opérations sur les tables de données dans le framework PHP Laravel. Il analyse en détail les étapes de fonctionnement pertinentes, les compétences d'implémentation et les précautions d'utilisation du framework Laravel basé sur l'UUID pour le partitionnement des tables de données sur la base d'exemples. .Il est obligatoire que les amis puissent se référer à

Cet article décrit un exemple d'utilisation de l'UUID pour implémenter des opérations sur les tables de données dans le framework PHP Laravel. Partagez-le avec tout le monde pour votre référence, comme suit :

UUID

L'UUID fait référence à un numéro généré sur une machine, qui garantit toutes les machines en même temps et dans l'espace sont uniques.

Pour faire simple, il s'agit d'une information d'identification unique générée via une règle (telle que : numéro d'identification de l'entreprise + année, mois, jour + format numérique auto-croissant du jour). Utilisé pour associer certaines de nos données et informations.

Exemple

Je l'ai utilisé lors de la réalisation d'un projet auparavant, maintenant je vais utiliser le framework Laravel pour écrire une démo simple

Formulaire frontal

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <form action="/addMysql" method="post">
      {!!csrf_field()!!}
      <table>
        <tr>
          <th style="colspan:2">注册</th>
        </tr>
        <tr>
          <td>账号</td>
          <td>
            <input type="text" name="uname" value="" />
          </td>
        </tr>
        <tr>
          <td>密码</td>
          <td>
            <input type="password" name="pwd" value="" />
          </td>
        </tr>
        <tr>
          <td>性别</td>
          <td>
            <input type="radio" name="sex" value="1" />:男
            <input type="radio" name="sex" value="0" />:女
          </td>
        </tr>
        <tr>
          <td>年龄</td>
          <td>
            <input type="text" name="age" value="" />
          </td>
        </tr>
        <tr>
          <td style="colspan:2">
            <input type="submit" value="提交" />
          </td>
        </tr>
      </table>
    </form>
  </body>
</html>

Créer une base de données et une table de données (créer seulement 1 table d'index et 8 sous-tables pour stocker des informations détaillées)

Principe : Grâce aux caractéristiques uniques de l'UUID, les informations détaillées d'une donnée sont stockées dans d'autres tables. Cela signifie qu'elles sont attribuées de manière aléatoire par l'UUID. Seuls l'UUID et les champs clés sont stockés dans la table d'index

<.>
表前缀统一前缀-------mall_
表 :    mall_index_user       索引表    -------uuid,uname
表0:    mall_user_0           uuid,uname,sex,age
表1:    mall_user_1
表2:    mall_user_2
表3:    mall_user_3
表4:    mall_user_4
表5:    mall_user_5
表6:    mall_user_6
表7:    mall_user_7
Soumettre les données à la base de données via le routage et les contrôleurs

Routage :

//form表单页面路由
Route::get(&#39;Mysql&#39;,function(){
  return view(&#39;home/Mysql&#39;);
});
//数据插入提交路由
Route::post(&#39;/addMysql&#39;,&#39;findMoreController@addMysql&#39;);

Contrôleur :

//向数据库插入数据
public function addMysql(Request $request){
  $uuid =md5(uniqid(mt_rand (), true));
  $uid =hexdec(substr($uuid,0,1)) % 8;
  $sex = $request->input(&#39;sex&#39;);
  $age = $request->input(&#39;age&#39;);
  //dd($uuid);
  $uname = $request->input(&#39;uname&#39;);
  $result = DB::table(&#39;index_user&#39;)->insert([&#39;uuid&#39;=>$uuid,&#39;uname&#39;=>$uname]);
  $result1 = DB::table(&#39;user_&#39;.$uid)->insert([&#39;uuid&#39;=>$uuid,&#39;uname&#39;=>$uname,&#39;sex&#39;=>$sex,&#39;age&#39;=>$age]);
  if($result1){
    return &#39;1&#39;;
  }else{
    return &#39;0&#39;;
  }
}

Solution : Le $uid ci-dessus est celui auquel l'UUID est obtenu. Le numéro représentatif de la table. inséré dans la table d'informations détaillées

Par exemple : $uid=3 Insérez ensuite les informations détaillées

dans user_3 et interrogez après une insertion réussie. Interrogez d'abord l'UUID via uname. les informations détaillées sont stockées via l'UUID. Ensuite, interrogez

Routage :

//查询页面
Route::get(&#39;findMysql&#39;,function(){
  return view(&#39;home/findMysql&#39;);
});
//查询路由
Route::post(&#39;/findMysql&#39;,&#39;findMoreController@findMysql&#39;);

Contrôleur. :

//查询
public function findMysql(Request $request){
    //dd($request);
    $uname=$request->input(&#39;uname&#39;);
    $uuid =DB::table(&#39;index_user&#39;)->where(&#39;uname&#39;,&#39;=&#39;,$uname)->value(&#39;uuid&#39;);
    $uid =hexdec(substr($uuid,0,1)) % 8;
    $userInfos=DB::table(&#39;user_&#39;.$uid)->get();
    if($userInfos){
      return view(&#39;home/selectMysql&#39;,[&#39;userInfos&#39;=>$userInfos]);
    }else{
      return view(&#39;home/findMysql&#39;);
    }
}

Affichage frontal

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <form action="" method="post">
      <table>
        <tr>
          <th style="colspan:2">遍历</th>
        </tr>
        @foreach($userInfos as $userInfo)
        <tr>
          <td>性别</td>
          <td>
            <input type="text" name="" value="{{$userInfo->sex}}" />
          </td>
        </tr>
        <tr>
          <td>年龄</td>
          <td>
            <input type="text" name="" value="{{$userInfo->age}}" />
          </td>
        </tr>
        @endforeach
      </table>
    </form>
  </body>
</html>

À ce stade, un exemple simple d'utilisation de tables UUID pour traiter les données est terminé.

Recommandations associées :

Comment utiliser Redis avec le framework Laravel

Utilisation de l'uuid en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn