Laravelのカラムタイプ一覧と使い分け!初心者でもわかるデータ型の基本
生徒
「Laravelでデータベースのテーブルを作るときに、カラムの型っていっぱいありますよね?どれを使えばいいのか分かりません…」
先生
「とても良い質問です。Laravelでは『マイグレーション』という仕組みを使ってテーブルを作りますが、その中でカラムタイプ(データ型)を指定します。これを正しく使い分けることが大切なんです。」
生徒
「カラムタイプって、数字とか文字の種類を指定するってことですか?」
先生
「そうです!例えば『名前』なら文字列(string)を使い、『年齢』なら整数(integer)を使います。それでは、Laravelでよく使うカラムタイプの一覧と、その使い分け方を詳しく見ていきましょう!」
1. Laravelのマイグレーションでカラムタイプを指定する方法
Laravelでは、マイグレーションファイルの中でSchema::create()を使ってテーブルを作成します。そのときに$table->string()や$table->integer()などを使って、カラムのデータ型(タイプ)を指定します。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
public function up(): void {
Schema::create('users', function (Blueprint $table) {
$table->id(); // 主キー
$table->string('name'); // 文字列
$table->integer('age'); // 整数
$table->timestamps(); // 作成日・更新日
});
}
public function down(): void {
Schema::dropIfExists('users');
}
};
このようにして、LaravelではPHPのコードでデータベースの構造を管理できます。SQLを直接書く必要がないので、初心者でも安心です。
2. よく使うカラムタイプ一覧と使い分け
それでは、Laravelでよく使うカラムタイプをひとつずつ見ていきましょう。どんなデータに使うべきかを例を交えて紹介します。
① string(文字列)
stringは、短い文字列(最大255文字)を保存するときに使います。ユーザー名やメールアドレスなどに最適です。
$table->string('email');
② text(長い文章)
textは、ブログの本文やコメントなどの長文を保存するときに使います。
$table->text('content');
③ integer(整数)
integerは、年齢や数量など、小数点を含まない数値を保存するときに使います。
$table->integer('age');
④ bigInteger(大きな整数)
bigIntegerは、通常の整数よりも大きな値を扱える型です。IDやカウンター値などに向いています。
$table->bigInteger('views');
⑤ boolean(真偽値)
booleanは、「はい・いいえ」「オン・オフ」などの状態を保存するときに使います。たとえば「会員登録済みかどうか」など。
$table->boolean('is_active');
⑥ date(年月日)
dateは、「2025-10-17」のような日付を扱います。誕生日やイベントの日付を保存するときに便利です。
$table->date('birthday');
⑦ datetime / timestamp(日時)
datetimeやtimestampは、「年月日+時刻」を保存します。データの登録日や更新日時を管理するのに使われます。
$table->timestamp('created_at');
⑧ float / double / decimal(小数)
floatやdoubleは、小数点を含む数値を扱います。ただし、金額のように正確な数値が必要な場合はdecimalを使う方が安全です。
$table->decimal('price', 8, 2); // 例:999999.99まで保存可能
⑨ enum(選択肢)
enumは、特定の値の中から選ぶタイプのカラムです。たとえば「男性」「女性」「その他」のような選択肢を設定できます。
$table->enum('gender', ['male', 'female', 'other']);
⑩ json(JSONデータ)
jsonは、配列やオブジェクトのような構造化データを保存するのに使います。設定情報やオプションをまとめて保存する場合に便利です。
$table->json('settings');
3. カラムタイプを選ぶときのポイント
データ型を選ぶときは、保存したいデータの「性質」を考えることが大切です。たとえば:
- ユーザー名やタイトル →
string - プロフィールの本文 →
text - 年齢や数量 →
integer - 金額 →
decimal - 日付や時刻 →
date/datetime
データ型を正しく使い分けることで、データベースが効率よく動作し、アプリケーションも安定します。
4. まとめ:カラムタイプを理解してデータベースを正しく設計しよう
Laravelのマイグレーションで使うカラムタイプは、データの種類に合わせて選ぶことが重要です。最初は難しく感じるかもしれませんが、慣れてくると自然に判断できるようになります。
「文字か数値か」「日付か時間か」「選択式か」など、目的に応じて正しいタイプを使い分けるようにしましょう。