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

不言
Libérer: 2023-03-28 18:02:01
original
1903 Les gens l'ont consulté

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>
Copier après la connexion

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
Copier après la connexion
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;);
Copier après la connexion

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;;
  }
}
Copier après la connexion

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;);
Copier après la connexion

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;);
    }
}
Copier après la connexion

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>
Copier après la connexion

À 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal