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でリレーションの設定を説明します。