今回はデータベースを作成したいと思います!
目標としている機能
- 【未完】入力した数字が過去に当たっているか検索できる
- 【未完】当たっている場合は、抽選日、第何回、何等、当選金額を一覧表示する
- 【未完】当たっていない場合は、残念風なコメントを表示させる
5月15日までに「やること」
- データベース作成 ←今回はココ
- 当選しているかロジック作成
- 表示画面作成(検索、結果)
過去データをCSVで取得
KYO's LOTO6さんのサイトからCSVを取得。
こんな簡単にデータを提供してくれるのは、ありがたいです。
これからもKYO's LOTO6さんにはお世話になりそうな気がします。
宜しくお願い致します♪
データベースを作成する
手順としては以下の流れを想定。
簡単な流れ
- プロジェクトを作成する
- マイグレーションファイルを作成する
- マイグレーションファイルを編集する
- マイグレートしてテーブルを作成する
- 作成したテーブルに過去データのCSVをインポートする
プロジェクトを作成する
今回は「LARAVEL-LOTO6」というプロジェクトを作成する為、以下のコマンドを実行
composer create-project "laravel/laravel=10.*" laravel-loto6
マイグレーションファイルを作成する
.envファイルを編集する
データベースを新たに作成したいので.envファイルの「DB_DATABASE」項目を編集する
データベース名も「larabel-loto6」としました
マイグレーションファイルを作成
マイグレーションファイルを作成する為、以下のコマンドを実行
マイグレーションファイルを編集する
ロト6結果テーブルのカラムを以下のように定義することにしました
名称 | カラム名 | 型 | 長さ | 備考 |
---|---|---|---|---|
実施回 | times | int | 10 | 主キー |
実施日 | date | date | - | |
第1数字 | number_1 | int | 11 | |
第2数字 | number_2 | int | 11 | |
第3数字 | number_3 | int | 11 | |
第4数字 | number_4 | int | 11 | |
第5数字 | number_5 | int | 11 | |
第6数字 | number_6 | int | 11 | |
スぺシャル数字 | number_sp | int | 11 | |
1等_口数 | 1st_count | int | 11 | |
2等_口数 | 2nd_count | int | 11 | |
3等_口数 | 3rd_count | int | 11 | |
4等_口数 | 4th_count | int | 11 | |
5等_口数 | 5th_count | int | 11 | |
1等_当選金額 | 1st_money | int | 11 | |
2等_当選金額 | 2nd_money | int | 11 | |
3等_当選金額 | 3rd_money | int | 11 | |
4等_当選金額 | 4th_money | int | 11 | |
5等_当選金額 | 5th_money | int | 11 | |
キャリーオーバー | carryover | int | 11 | きゃりーぱみゅぱみゅ |
作成日 | created_at | timestamp | - | |
更新日 | updated_at | timestamp | - |
マイグレーションファイルはこんな感じに編集しました
<?php
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('loto6_result', function (Blueprint $table) {
$table->increments('times');
$table->date('date');
$table->integer('number_1');
$table->integer('number_2');
$table->integer('number_3');
$table->integer('number_4');
$table->integer('number_5');
$table->integer('number_6');
$table->integer('number_sp');
$table->integer('1st_count');
$table->integer('2nd_count');
$table->integer('3rd_count');
$table->integer('4th_count');
$table->integer('5th_count');
$table->integer('1st_money');
$table->integer('2nd_money');
$table->integer('3rd_money');
$table->integer('4th_money');
$table->integer('5th_money');
$table->integer('carryover');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('loto6_result');
}
};
マイグレートをする
インポートする
phpMyAdminよりKYO's LOTO6さんのサイトから頂いたCSVをインポート♪
簡単にデータベースが完成
感想
3日ほどかかりましたが、ほぼ仕事前の時間の作業で作成することができました。
次は、データベースの中身を見たいので、表示画面を作成したいと思います!