一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - PHP框架Laravel中使用UUID實(shí)現(xiàn)數(shù)據(jù)分表操作示例

PHP框架Laravel中使用UUID實(shí)現(xiàn)數(shù)據(jù)分表操作示例

2019-09-29 14:29谷文杰 PHP教程

這篇文章主要介紹了PHP框架Laravel中使用UUID實(shí)現(xiàn)數(shù)據(jù)分表操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了Laravel框架基于UUID進(jìn)行數(shù)據(jù)分表的相關(guān)操作步驟、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了PHP框架Laravel中使用UUID實(shí)現(xiàn)數(shù)據(jù)分表操作。分享給大家供大家參考,具體如下:

UUID

UUID是指在一臺(tái)機(jī)器上生成的數(shù)字,它保證對(duì)在同一時(shí)空中的所有機(jī)器都是唯一的。

說的簡單點(diǎn),它就是通過一個(gè)規(guī)則(如:業(yè)務(wù)標(biāo)識(shí)號(hào)+年月日+當(dāng)日自增數(shù)字格式化)生成的一個(gè)具有唯一性的辨識(shí)資訊。用于關(guān)聯(lián)我們的一些額數(shù)據(jù)和資訊。

實(shí)例

之前在做一個(gè)項(xiàng)目的時(shí)候用到這個(gè)東西,現(xiàn)在我就用Laravel框架寫一個(gè)簡單的demo

前端form表單

<!DOCTYPE html>
<html>
  <head></head>
  <body>
    <form action="/addMysql" method="post">
      {!!csrf_field()!!}
      <table>
        <tr>
          <th style="colspan:2">注冊(cè)</th>
        </tr>
        <tr>
          <td>賬號(hào)</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>

建立數(shù)據(jù)庫和數(shù)據(jù)表(只建立 1 個(gè)索引表 和 8 個(gè)進(jìn)行存儲(chǔ)詳細(xì)信息的子表)

原理:通過UUID的唯一特性,將一個(gè)數(shù)據(jù)的詳細(xì)信息數(shù)據(jù)存在其他表中的,這個(gè)表示通過UUID隨機(jī)分配出來的,索引表中只存儲(chǔ)UUID和關(guān)鍵字段

表前綴統(tǒng)一前綴-------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

通過路由和控制器進(jìn)行form表單提交數(shù)據(jù)向數(shù)據(jù)庫插入數(shù)據(jù)

路由:

//form表單頁面路由
Route::get('Mysql',function(){
  return view('home/Mysql');
});
//數(shù)據(jù)插入提交路由
Route::post('/addMysql','findMoreController@addMysql');

控制器:

//向數(shù)據(jù)庫插入數(shù)據(jù)
public function addMysql(Request $request){
  $uuid =md5(uniqid(mt_rand (), true));
  $uid =hexdec(substr($uuid,0,1)) % 8;
  $sex = $request->input('sex');
  $age = $request->input('age');
  //dd($uuid);
  $uname = $request->input('uname');
  $result = DB::table('index_user')->insert(['uuid'=>$uuid,'uname'=>$uname]);
  $result1 = DB::table('user_'.$uid)->insert(['uuid'=>$uuid,'uname'=>$uname,'sex'=>$sex,'age'=>$age]);
  if($result1){
    return '1';
  }else{
    return '0';
  }
}

解:上面的$uid就是通過UUID得到的要向哪一張?jiān)敿?xì)信息表中插入的表的代表號(hào)

例如:$uid=3     那么就向user_3中插入詳細(xì)信息

插入成功后進(jìn)行查詢,先通過uname查詢出UUID,通過UUID知道詳細(xì)信息存儲(chǔ)在哪張子表中.然后再進(jìn)行查詢

路由:

//查詢頁面
Route::get('findMysql',function(){
  return view('home/findMysql');
});
//查詢路由
Route::post('/findMysql','findMoreController@findMysql');

控制器:

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

前端展示

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

至此,一個(gè)簡單的利用UUID分表處理數(shù)據(jù)的例子就完成了。希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲精品一区二区在线播放 | 特黄特a级特别特级特毛片 特黄a级三级三级野战 | 国产在视频线精品视频 | 99国产牛牛视频在线网站 | 国产乱子伦在线观看不卡 | 隔壁老王国产在线精品 | 男人免费视频 | 成人在线日韩 | a一级毛片录像带 录像片 | 1024免费福利永久观看网站 | 久久强奷乱码老熟女 | 国产精品成人在线播放 | 人皮高跟鞋在线观看 | 九九九九在线视频播放 | 亚州中文字幕 | 国产成人手机在线好好热 | 国产午夜免费视频 | 短篇艳妇系列 | aaa一级特黄 | spy2wc48美女撒尿 | 成人影院视频 | 亚洲欧洲淘宝天堂日本 | 1717she精品视频在线观看 | 久久中文字幕综合不卡一二区 | 日本漫画工囗全彩番在线 | 2018高清国产一道国产 | 天美传媒传媒免费观看 | 日本热妇 | 久久AV国产麻豆HD真实乱 | 国产精品久久久久久久久久久久久久 | 无码AV免费精品一区二区三区 | 国产午夜精品一区二区三区不卡 | 国产精品3p视频 | 欧美视频在线播放观看免费福利资源 | 甜性涩爱| 99国内精品久久久久久久黑人 | 91久久国产青草亚洲 | 美女跪式抽搐gif动态图 | 欧美日韩国内 | 99精品国产美女福到在线不卡 | 亚洲精品丝袜在线一区波多野结衣 |