ウェブログラム

実践しながらじっくり学ぶ、Webプログラム習得サイトです。自作サービスの公開までWeb開発を実践していきましょう!

Webrogram

自分のオリジナルサービスを作って運営しよう!

【Laravel実践編】MYBEYAのDB設計をしよう

Laravel入門記事一覧はこちら webrogram.hatenadiary.jp

前回「MYBEYA」オリジナルサービスをざっくりと考えました。

webrogram.hatenadiary.jp

いよいよ、DB設計をしていきましょう!

前回、必要な機能として以下を上げました。

  • 会員登録
  • ログイン
  • ログアウト
  • 部屋でつぶやき機能
  • 他ユーザ部屋へのコメント機能

ユーザは会員登録をして、「MYBEYA」にログインをします。 ユーザは他のユーザの部屋に行ってコメントをすることができます。 自分の部屋には他のユーザからのコメントが来ます。もちろん自分の部屋にも自分でコメントできます。

単純にこれだけの機能です。

必要なテーブルを洗い出す

今回のサービスで登場するものは

  • ユーザ
  • コメント

だけです。とてもシンプルな構成です。 なので、用意するテーブルは

  • usersテーブル
  • commentsテーブル

この2つだけで良さそうですね。 部屋というテーブルを用意するのも良いですが、現状ユーザ1人に対して部屋は1つなので、 部屋を用意せずに、コメントはユーザに紐づく感じにしていきます。

テーブルのカラムを決める

次に各テーブルにどういう情報が必要となるのかを考えます。

usersテーブル

一意に識別するためのID、名前、性別、年齢、メール、パスワードこのあたりがあれば良さそうです。

  • id
  • name
  • sex
  • age
  • email
  • password
  • created_at
  • updated_at

また、created_atとupdated_atというものを追加しましたが、 これはユーザが作成された時の日時と更新された時の日時になります。 Laravelではデフォルトでこの2つを登録するので、、created_atとupdated_atのカラムは作っておきましょう。

commentsテーブル

コメントにはコメント自体と、誰に対してのコメントかという情報を保つ必要があります。

この誰に対してのコメントかという情報は外部キーと呼ばれます。 今回の場合だと「ユーザに対する」コメントとなるので「user_id」というものを持っておきます。

  • id
  • user_id
  • text
  • created_at
  • updated_at

commentsテーブルのuser_idはusersテーブルのidに関連します。

これで2つのテーブルにどいう情報を持たせれば良いのかが分かりました。

いよいよテーブルを作成する

DBはMySQLなので、今回は「MySQL Workbench」というツールを使って、テーブルを作成していきましょう。

Laravelの環境やMySQLの環境は予め構築しておいてください。構築がまだな方は以下を参考に構築しましょう。

webrogram.hatenadiary.jp

今回のサーバ、MySQLの接続情報は以下のように設定しています。上の記事通りです。

  • サーバIP: 192.168.33.10
  • サーバのユーザ: vagrant
  • サーバのvagrantユーザのパスワード: vagrant
  • MySQLのユーザ: root
  • MySQLのrootユーザのパスワード: Asdf1234!

上記を「MySQL Workbench」に設定しておきましょう。

あとは各テーブルを作成し、カラムを追加しておいてください。 MySQL Workbenchでのテーブル作成やカラム追加の方法が分からない場合は、以下を参考にしてください。

[MySQL] MySQL Workbenchを使ってテーブルを作成する

さて次回からはLaravelの簡単な認証機能を作成していきます。案外簡単に出来るのでお楽しみに。