はじめに
※自身の学習を記事に投稿することでアウトプットするのが目的です。
「よくわかるPHPの教科書」のchapter6に書いてある通りにアプリを
作成していくので、私と同じような駆け出しエンジニアの皆さんは、
書籍を買ってアプリを作っていただいた方がわかりやすいかもしれません。
使用しているエディタ、実行環境
-
VS Code
-
XAMPP
-
PHP7
-
windows
DBを設計していく
必要な機能の洗い出し
掲示板アプリに必要な機能を洗い出していきます。
簡単なもので、思いつくところだと、こんな感じでしょうか。
-
文章を投稿する機能
-
文章に返信できる機能
-
写真をアップロードできる機能
-
会員登録ができる機能
-
退会できる機能
-
ログインできる機能
-
ログアウトできる機能
機能に対するデータベースの項目を考えてみる
大まかに、重複してもいいので考えてみます
- ・文章を投稿する機能
- メッセージ
- 会員情報
- ・文章に返信できる機能
- メッセージ
- 会員情報
- 返信先のメッセージ
- ・写真をアップロードする機能
- 写真があるファイルの情報(パス)
- ・会員登録が出来る機能
- ニックネーム
- パスワード
- メールアドレス
- ・退会できる
- 会員情報
- ・ログインできる機能
- メールアドレス
- パスワード
- ・ログアウトできる機能
- 会員情報
テーブル設計をしていく
次に、洗い出したデータベースの項目をまとめて、
実際にカラム名とデータ型を決めてテーブル設計をしていきます。
・members-会員関係 [テーブル]
カラム名 | 型 | 意味 |
---|---|---|
id | INT | 会員情報[PRIMARY KEY] |
name | VARCHAR(255) | ニックネーム |
VARCHAR(255) | メールアドレス | |
password | VARCHAR(100) | パスワード |
picture | VARCHAR(255) | 写真のパス |
created | DATETIME | 作成日 |
modified | TIMESTAMP | 更新日 |
・posts-投稿関係[テーブル]
カラム名 | 型 | 意味 |
---|---|---|
id | INT | メッセージid[PRIMARY KEY] |
message | TEXT | メッセージ |
member_id | INT | 投稿者のid |
reply_post_id | INT | 返信先のメッセージid |
created | DATETIME | 作成日 |
modified | TIMESTAMP | 更新日 |
こんな感じですね。ひとまずこれにてDB設計は終了です。
実際に、XAMPPのMySQL管理画面で作成してください。
終わりに
最初にアプリに必要な機能を洗い出したうえで、その機能に必要な情報を考える。
この手順でやると分かりやすいですね。
今回は簡単な掲示板アプリなので、必要な情報がそんなに多くないのでDB設計を
考えやすいですが、これが大規模がアプリになると、どんだけ大変なんだろう・・・。
震えます。