前のパートに戻る 完了して次のパートへ  

  0-3 設計

本教材ではユーザー投稿型のブックレビューサイトを開発していきます。

当パートではブックレビューサイトの開発に必要な設計を解説します。

トップページ


本のレビュー一覧が表示されるページになります。新しい順に並ぶ仕様で、画像には写っていませんが、9個以上の場合はページネーションが表示されます。 

レビュー投稿ページ


レビューを投稿するページになります。画像のアップロードは任意で投稿できます。

また、このページはログイン認証をかけてログインしている状態のみアクセスできるようにコントロールしていきます。 

レビュー閲覧ページ


レビューの詳細を閲覧するページになります。

 

ログイン


会員登録済みのユーザーがログインするページになります。

会員登録


新規の会員登録をするページになります。本教材ではメール認証は実装しないため、即時ログインできるようになります。

必要な機能の洗い出し


本教材はでは以下の機能を実装していきます。

- ログイン/会員登録機能
- レビュー閲覧機能
- レビュー投稿機能

必要なデータの洗い出し


前項の機能を実現するために必要な情報を洗い出してみましょう。

ユーザー情報

  • 名前
  • メールアドレス
  • パスワード
  • etc...

レビュー情報

  • 本のタイトル
  • レビュー本文
  • 本の画像
  • レビューした人は誰か?
  • レビュー投稿日時

2つのデータの関係性を考えてみる


ユーザーの情報とレビューの情報の関係性は以下のようになります。

 - ユーザーは複数のレビューを投稿することができる
 - レビューAに関して、レビューAを投稿したユーザーは一人しかいない

こういった関係性を1:多の関係性と言います。

これらの関係を*ER図にすると以下のようになります。

このテーブル設計により、ユーザーが複数の投稿を管理しながら、誰がどのレビュー投稿をしたのか管理できるようになります。

*ER図とは、データベースのテーブル(Entity)とテーブル同士の関連(Relationship)を図に表したものであり、データベースのテーブル設計に用いられます。

テーブル設計する際はER図を書きます。 ER図に関しては、こちらのURLを参考にしてください。

若手プログラマー必読!5分で理解できるER図の書き方5ステップ

AWS設計


本教材ではAWSを使ったインフラ構築も行いますので、サーバー全体のイメージを掴むためにまずは以下の図をご覧ください。

Webアプリケーションを全てAWS上のサービスで展開していきます。この章では簡単な紹介に留めておきますので、各サービスの詳細はハンズオンで構築しながら学んでいきましょう。

  • VPC : バーチャルプライベートクラウド。擬似的に隔離されたネットワークを構築できるので、1アプリにつき1つのVPCを割り当てています。
  • EC2 : Elastic Cloud Compute。伸縮可能なクラウドサーバーになり、EC2上でLaravelが動作する環境を構築していきます。
  • RDS : リレーショナルデータベースサービス。各種データベースをクラウド上に構築でき、耐障害性もデフォルトで兼ね備えているため、本教材ではRDSを利用します。
  • ELB : Elastic Load Blancer。負荷分散のため複数のEC2にアクセスを振り分けるサービス。ただし、本教材ではEC2を1台で動作させるため、負荷分散機能は使わず利用します。
  • ROUTE53 : ドメインの名前解決サービス。所謂DNSサーバーに当たるサービスで独自ドメインとRLBをつなぐ役割を果たしています。

最後に


以上でインフラ〜アプリケーションの設計を終了します。

このパートの全体像を頭に入れておくことで、全体を意識しながら開発を進められるので、忘れてしまったらいつでも戻って見直してください。

お疲れ様でした。

議論

0 質問

このコースの評価は?