教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
本章では、カリキュラムを始める前に、作成するアプリケーションの仕様と大まかな設計を提示します。テスト駆動開発は、テストを書きながら詳細設計を行っていくので、細かい部分は教材を進めながら決めていきます。
本教材で作成するアプリケーションは「ヨガ教室の予約サイト」ですが、すべてテストを通して動作確認をするため、作成する画面はありません。しかし、より完成形をイメージしやすいように、画面イメージを事前に共有しておきます。
必要な情報は以下のとおりです。
reservations.lesson_id が lessons.id に、reservations.user_id が users.id にひもづきます。
論理名 | 物理名 | データ型とサイズ | 制約と付帯情報 |
---|---|---|---|
ID | id | UNSIGNED BIGINT | PK, auto increment |
名前 | name | VARCHAR(255) | not null |
メールアドレス | VARCHAR(255) | not null, unique | |
メールアドレス確認日時 | email_verified_at | TIMESTAMP | |
パスワード | password | VARCHAR(255) | not null |
ログイン維持用トークン | remember_token | VARCHAR(100) | |
プラン | plan | VARCHAR(20) | not null, regular または gold |
作成日時 | created_at | TIMESTAMP | |
更新日時 | updated_at | TIMESTAMP |
論理名 | 物理名 | データ型とサイズ | 制約と付帯情報 |
---|---|---|---|
ID | id | UNSIGNED BIGINT | PK, auto increment |
名称 | name | VARCHAR(255) | not null |
講師名 | coach_name | VARCHAR(255) | not null |
募集人数 | capacity | UNSIGNED INT | not null |
開始日時 | start_at | TIMESTAMP | not null |
終了日時 | end_at | TIMESTAMP | not null |
作成日時 | created_at | TIMESTAMP | |
更新日時 | updated_at | TIMESTAMP |
論理名 | 物理名 | データ型とサイズ | 制約と付帯情報 |
---|---|---|---|
ID | id | UNSIGNED BIGINT | PK, auto increment |
ユーザーID | user_id | UNSIGNED BIGINT | FK (users.id) |
レッスンID | lesson_id | UNSIGNED BIGINT | FK (lessons.id) |
作成日時 | created_at | TIMESTAMP | |
更新日時 | updated_at | TIMESTAMP |
ルールは、カリキュラムの過程で、追加・変更されることがあります。