カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

0-7

設計について

このパートでは、今回作成するevernote風メモアプリ(simple memo)について、設計を考えていきます。

PHPバージョンとLaravelバージョンで設計方針に違いはありませんが、LaravelバージョンはログインにLaravelの認証機能を使うので、データベース設計に差異があります。

必要な画面を洗い出して、画面遷移方法の確認とデータベース設計を考えています。

必要な画面は?

今回のWebアプリケーションに必要な画面を考えてみると、下記の3画面になります。

ユーザー登録画面

ユーザー登録画面には、ユーザーの名前とメールアドレス、パスワードを入力して登録します。
登録が終わるとメモ投稿画面に遷移します。

image

ログイン画面

ログイン画面ではユーザーのメールアドレスとパスワードを入力してログインします。
ログインするとメモ画面を表示します。

アカウント作成リンクをクリックすると、ユーザー登録画面に遷移します。

image

メモ投稿画面

メモ画面ではユーザーが投稿した一覧と、投稿用のフォームが表示されます。

プラスボタンを押すと、新規のメモを追加します。

プラスボタンの右のアイコンを押すとログアウトします。

ゴミ箱ボタンはメモの削除です。フロッピーのアイコンを押すと、入力した内容で保存されます。

image

画面遷移はどうする?

画面遷移を考えてみると下記のようになります。

最初にWebアプリケーションにアクセスされると、ログイン画面に遷移します。

アカウントがある場合は、そのままログインしてメモ投稿画面を表示します。

アカウントがない場合はアカウントを作成リンクをクリックして、ユーザー登録画面に遷移します。

ユーザー登録画面でユーザー登録をするとメモ投稿画面を表示します。

メモ投稿画面からログアウトすると、ログイン画面に戻ります。

image

データベース設計

登録するユーザー情報やメモ情報はデータベースに保存していくので、テーブル設計を考えます。

必要なテーブルを洗い出すときには、フォームで入力される内容を元に保存されるデータを考えていくと良いです。

今回のアプリケーションでは、フォームで入力して保存されるのはユーザー登録・メモ投稿です。

必要なテーブルは?

画面や画面遷移から考えると、登録するデータはユーザーの情報とメモの情報だけになります。

ユーザー情報のテーブルをusersテーブル、メモ情報のテーブルをmemosテーブルとします。

PHPバージョンのテーブル構成

ER図で表すと下記のようになります。1人のユーザーに複数のメモが紐づくイメージです。

この二つのテーブルで、必要な情報は保存できます。

image

usersテーブルには次の項目を持っています。

  • name : ユーザー名
  • email : メールアドレス
  • password : パスワード
  • created_at : 作成日
  • updated_at : 更新日

memosテーブルには次の項目を持っています。

  • user_id : usersテーブルのid
  • title : メモのタイトル
  • content : メモの内容
  • created_at : 作成日
  • updated_at : 更新日

Laravelバージョンのテーブル構成

基本的にはPHPバージョンと同じですが、Laravelの方ではLaravelの機能を使って、ログイン・ログアウトを実装します。

テーブル構造を変えると標準の機能でエラーになることもあるので、Laravel標準のテーブル構造を保ちつつ、usersテーブルとmemosテーブルを用意してみました。

ER図で表すと下記のようになります。

image

PHPバージョンと基本的には同じですが、usersの方だけemail_verified_atとremember_tokenがあります。

email_verified_atカラムはLaravelでユーザー登録をしたときに、確認メールがユーザーに届きます。

その時の確認判定で使われています。

remember_tokenカラムはLaravelにログインするときの機能で、remember meのチェックボックスにチェックが入っていると、次回から自動でログインできる機能で使われています。

今回は両方とも使いませんので、気にしなくて良いです。レコードの2つの値は常に空になります。

以上で、画面の確認とデータを保存するテーブル構成の確認ができました。

次の章に進んで、実際に開発を行っていきましょう。

現在のパート (0)
全パート (72)
みんなで助け合おう!
現在のパートのディスカッション 全0件