Laravelではidカラムのデータ型は【符号なしBIGINT】を使う理由

Laravel 入門講座
スポンサーリンク

Laravelでは、idカラムのデータ型は unsignedBigIntegerを選択します。

マイグレーションファイルには、【$table->unsignedBigInteger(‘user_id’)】のように記述する必要があります。

リレーションなどで相手のidを入れたidカラムを作るときには、ご注意ください。

でもIDのデータがたって、integerでもよい気がしませんか?

なぜ符号なしBIGINTのデータ型を使うべきなのか、解説していきます。

*本記事で使用するLaravelのバージョンはLaravel8です。

スポンサーリンク

Laravelではidカラムのデータ型は【符号なしBIGINT】を使う理由

なぜidのデータ型はunsignedBigIntegerなのか。

これは、下記のLaravelの公式マニュアルを検索すると分かります。

ただしすぐには分からず、3ステップの検索が必要です。

1回目の検索:$table->id

まずは公式マニュアルを開きます。

マイグレーション 8.x Laravel

マイグレーション時にデータ型を調べるときは、このページの【使用できるカラムタイプ】を参照します。

一番上には 【$table->id();】とあります。

つまり、idのデータ型には、これが使われているのです。

なお説明欄には【 $table->bigIncrements(‘id’)の別名】とあります。

$table->id(); = $table->bigIncrements(‘id’)の別名

2回目の検索:$table->bigIncrements(‘id’)

【$table->bigIncrements(‘id’)】を検索してみると、2つほど下に、該当するものがありました。

$table->bigIncrements(‘id’) = 符号なしBIGINTを使用した自動増分ID(主キー)

自動増分というのは、自動で連番が割り振られていくということ。

デフォルトで使うidであればよいのですが、自分でid番号をつけたいときには使いにくいですね。

3回目の検索:符号なしBIGINT

そこで、もうちょっと調べてみることにします。

今の検索結果で、idには【符号なしBIGINT】と使用せねばならないことが分かりました。

そこで【符号なしBIGINT】で検索をかけてみます。

すると、次のようなデータ型がありました。

$table->unsignedBigInteger(‘votes’); = 符号なしBIGINTカラム

つまり、これが使うべきデータ型になります。

マイグレーションファイルでは、たとえば【user_id】カラムに、次のような感じでデータ型を指定します。

符号なしBIGINTとは?

符号なしBIGINTのデータ型は、ものすごい量の数を格納できます。

BIGINTとは、BigInteger。値の範囲は、次のとおり。

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

符号なしBIGINTとは、マイナス部分がないBIGINT、ということ。

つまりマイナス部分で使うべき部分も利用できるので、そのぶん、格納できる量が増えます。

具体的には、次のとおりです。

0 ~ 18,446,744,073,709,551,615
じゅんこ
じゅんこ

多すぎて口頭で読み上げられないぐらい・・・。

まとめ

今回のまとめidカラムでは、データ型は符号なしBIGINTを使う

理由は公式マニュアルを3ステップで検索すると分かる

少しスッキリしたと感じてもらえたら嬉しいです。

ちなみに以前のLaravelではidのデータ型は違っていたようで、今後もバージョンアップで変更があるかもしれません。

じゅんこ
じゅんこ

バージョンが変わるときには、注意が必要ですね。

データタイプに悩んだら、こちらも併せて参考にしてください。

Laravel 入門講座 Laravelデータベース

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中!
会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

【個別サポート実施中】

「本ブログに記載の方法を試してみたけれど、うまくいかない」「コードを見てほしい」という方のために、有償でメールサポートいたします。以下のボタンをクリックして相談フォームにアクセスして下さい。

詳しく見る

Twitter始めました。
スポンサーリンク
40代からプログラミング!

コメント

タイトルとURLをコピーしました