Laravel 10 でデータベース登録を行う際に、URL アドレスを格納するための型は、いくつかの選択肢があります。
1. string
型
PHP
$model->url = 'https://example.com/long-url-address';
$model->save();
コードは注意してご使用ください。content_copy
string
型は最もシンプルですが、255 文字を超える URL アドレスを格納することはできません。
2. text
型
PHP
$model->url = 'https://example.com/long-url-address';
$model->save();
コードは注意してご使用ください。content_copy
text
型は、65,535 文字までのデータを格納できます。
3. mediumtext
型
PHP
$model->url = 'https://example.com/long-url-address';
$model->save();
コードは注意してご使用ください。content_copy
mediumtext
型は、16,777,215 文字までのデータを格納できます。
4. longtext
型
PHP
$model->url = 'https://example.com/long-url-address';
$model->save();
コードは注意してご使用ください。content_copy
longtext
型は、4,294,967,295 文字までのデータを格納できます。
どの型を使うべきか
URL アドレスの桁数によって、使用する型を以下のように選ぶのが一般的です。
- 255 文字以下:
string
型 - 255 文字~65,535 文字:
text
型 - 65,535 文字~16,777,215 文字:
mediumtext
型 - 16,777,215 文字以上:
longtext
型
注意点
text
型、mediumtext
型、longtext
型は、string
型よりも多くのストレージ容量を使用します。- データベースのインデックスを作成する場合は、
string
型の方が効率的です。
参考
- Laravel 10 documentation – Database: [[無効な URL を削除しました]]([無効な URL を削除しました])
- MySQL documentation – Data Types: https://dev.mysql.com/doc/refman/8.0/en/data-types.html