Using UUID to implement data table operations in PHP framework Laravel

不言
Release: 2023-03-28 18:02:01
Original
1894 people have browsed it

This article mainly introduces the use of UUID in the PHP framework Laravel to implement data table splitting operations. It analyzes in detail the relevant operation steps, implementation techniques and operating precautions for the Laravel framework to perform data table splitting based on UUID in the form of examples. It is required Friends can refer to the following

This article describes the use of UUID in the PHP framework Laravel to implement data table operations. Share it with everyone for your reference, as follows:

UUID

##UUID refers to a number generated on a machine, which guarantees All machines in the same time and space are unique.

To put it simply, it is a unique identification information generated through a rule (such as: business identification number year month day auto-increment digital format). Used to associate some of our data and information.

Example

I used this thing when doing a project before, now I will use the Laravel framework to write a simple demo

Front-end form

<!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>
Copy after login

Create database and data table (only create 1 index table and 8 sub-tables to store detailed information)

Principle: Through the unique characteristics of UUID, the detailed information of a data is stored in other tables. This means that it is randomly assigned by UUID. Only UUID and key fields are stored in the index table

表前缀统一前缀-------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
Copy after login

Submit data to the database through routing and controllers

Routing:

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

Controller:

//向数据库插入数据
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;;
  }
}
Copy after login

Solution: The $uid above is the detailed information table to be inserted into which is obtained through the UUID The representative number

For example: $uid=3 Then insert the detailed information into user_3

After the insertion is successful, query, first query the UUID through uname, and know where the detailed information is stored through the UUID Zhang sub-table. Then query

Routing:

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

Controller:

//查询
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;);
    }
}
Copy after login

Front-end display

<!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>
Copy after login

So far, a simple The example of using UUID table to process data is completed.

Related recommendations:

How to use Redis in Laravel framework

Using uuid in php

The above is the detailed content of Using UUID to implement data table operations in PHP framework Laravel. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template