データ

 データベースを扱っていると一意(ユニーク)な値を取得、設定することがごく普通にあります。

 そのユニークな方法としてUUID(Universally Unique Identifier)というのがあります。このUUIDは16進数の文字を36文字使うことでユニークな番号を生成する方法なのですが、PHPのツールであるphpMyAdminとCakePHPでは自動でUUIDになる現象があったので下記に紹介しておきます。

UUIDのフォーマット

 UUIDは先にも書いた通り36文字の16進数を使うことで世界に2つとない番号を生成する方法です。書式は下記のような文字列で、タイムスタンプなどを組み合わせで生成されています。

833d769e-b67f-473c-bf32-a5638c57f0a9

CakePHP

 PHPのフレームワークCakePHPを扱ったことがある方なら御存知だと思いますが、CakePHPで使うデータベースのテーブルには「id」と称したユニークな値を持たせたカラム(フィールド)が必要になります。通常は「AUTO_INCREMENT」で1から順番に番号を自動生成させると思うのですが、このカラムをVARCHARタイプまたはCHARタイプで長さを36文字にすると、CakePHPでデータを挿入(save関数で挿入)すると、自動的にUUIDを生成して登録します。これはCakePHPの仕様で決まっています。

CakePHP の規約 — CakePHP Cookbook 2.x ドキュメント

phpMyAdmin

 データベースMySQLを利用するブラウザ上のツールとしてphpMyAdminがありますが、このphpMyAdminでもVARCHARタイプで長さを36文字にしたPRIMARYのカラムはphpMyAdminのデータ挿入時は自動でUUID関数を利用するようです。

 これはちゃんと調べたわけではないのですが、私の利用しているphpMyAdmin(Ver. 4.4.15.2)では自動でUUIDとなっていました。

phpMyAdminでvarchar(36)にすると自動でUUIDに

phpMyAdminでvarchar(36)にすると自動でUUIDに

最後に

 CakePHPはドキュメントにVerchar(36)だと自動でUUID登録を行うと書かれていますが、phpMyAdminは確認できませんでした。もし、どなたか御存知の方がいらっしゃいましたら、下記コメントに明記して頂くと助かりますm(__)m

理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus)

著者/訳者:奥野 幹也

出版社:技術評論社( 2015-03-10 )

定価:¥ 3,110

Amazon価格:¥ 3,110

単行本(ソフトカバー) ( 384 ページ )

ISBN-10 : 4774171972

ISBN-13 : 9784774171975