LaravelでVueを使う時のリレーション – マイグレーションファイルを作成

当サイトではアフィリエイト広告を利用して商品を紹介しています。
当サイトではアフィリエイト広告を利用して商品を紹介しています。

LaravelでVueを使う時のリレーションについて複数回に分けて説明していきます。

当サイトでは米国株を題材に作成しています。

今回はデータベースのテーブルを作成するためにマイグレーションファイルを作成して、使用するusstocksテーブルとmarketsテーブルについて説明します。

マイグレーションファイルを作成

まずは以下のコマンドを入力して、マイグレーションファイルを作成します。

php artisan make:migration create_usstocks_table
php artisan make:migration create_markets_table

php artisan make:migrationがコマンド名でcreate_usstocks_tableがファイル名となります。

ちなみにファイル名がusstocksではなくて、create_usstocks_tableなのか?
最初にLaravelのプロジェクトを作成するとデフォルトでマイグレーションファイルがあり、ファイル名の命名規則がcreate_(テーブル名・複数形)_tableとなっています。
当サイトでもそれに従って作成します。

テーブルのカラムを設定

作成した各マイグレーションファイルにテーブルのカラムを設定していきます。

usstocksテーブル

usstocksテーブルには以下の3つのカラムを設定します
ticker:ティッカー(米国株の個々の銘柄を識別するためにつけられた記号)
name:銘柄名
market_id:市場ID

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsstocksTable extends Migration {
  public function up() {
    Schema::create('usstocks', function (Blueprint $table) {
      $table->string('ticker')->unique()->primary();
      $table->string('name');
      $table->integer('market_id');
    });
  }
public function down() {
  Schema::dropIfExists('usstocks');
  }
}

7行目のSchema::create内に必要なカラムを設定していきます。
8行目にはテーブルの主キーとなるtickerをカラム名とします。
通常、主キーは整数を使いますが、今回はtickerを文字列を主キーとします。
stringは文字列、uniqueは重複しないこと、primaryは主キーを指定しています。
9行目はnameをカラム名としてstringで文字列を指定します。
10行目はリレーションで使うmarket_idをカラム名としてintegerは整数を指定しています。

marketsテーブル

marketsテーブルには以下の2つのカラムを設定します
market_id:市場ID(1・2)
market:市場名(NYSE・NASDAQ)
以下にレコードを設定します。
1:NYSE
2:NASDAQ
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsstocksTable extends Migration {
  public function up() {
    Schema::create('markets', function (Blueprint $table) {
      $table->bigIncrements('market_id');
      $table->string('market')->unique();
    });
  }
public function down() {
  Schema::dropIfExists('markets');
  }
}

8行目にテーブルの主キーとなるmarket_idをカラム名としてbigIncrementsは主キーを指定しています。
9行目のmarketをカラム名としてstringで文字列を指定します。

次回はusstocksテーブルとmarketsテーブルに対応したModelでリレーションの設定を説明します。

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