PHPとMySQLを使って初心者が掲示板を作ってみる講座。
今回は掲示板の設計図を作り、これに合わせて、MySQLでデータベースを作成するところまで解説します。
最終的にできる掲示板のイメージはこちら(クリックすると実物を操作いただけます)。
↓↓↓
掲示板作成の7ステップの目次と概要はこちらをご覧ください。
要件定義を行う
まず最初に行うべきは「設計図」作り。
実際のプログラミングでは、この設計図を作る作業を「要件定義」と呼びます。
次の項目を決めておきましょう。
- 掲示板のテーマ
- 必要なページと、ページに入れる機能
- データベースの表に入れる項目
私は紙に適当に書きましたが^^;

掲示板の設計図(手書き)
超適当でも、この設計図が大いに役立ちました。
後から

やっぱりこの項目も入れたいなぁ。
と、ぽろぽろ変更を加えると、ドツボにはまっていき、バグだらけのシステムになることもあります。
コードを書く前に設計図をシッカリ作っておくのがすごく大事!
特にデータベースは、最初からどんな項目をいれるか決めておいたほうが良いです。
MySQLにデータベース作成
設計図を作った後は、設計図に沿って、MySQLにデータベースを作成しましょう。
今回はデータベースの中に、2つのテーブル(表)を作っていきます。
1つ目の表は【ユーザー情報を入れるテーブル】、2つ目は【投稿内容を入れるテーブル】とします。
phpMyAdminにログインする
XAMPPのMySQL「Admin」からログインします。

XAMPP画面
MySQLにデータベースを作る
ログイン後、「新規作成」をクリックします。
「データベースを作成する」画面になるので、データベース名を入れ、作成ボタンを押します。
右側は下記のとおり「utf8mb4_general_ci」にします。
データベースの中にテーブルを作る
データベースの中に、テーブルを作っていきます。
データベース作成後に表示される画面で、テーブル名とカラム数を指定します。
右下の【実行】ボタンを押します。
ユーザー情報用のテーブルを作る
最初にユーザー情報用のテーブル【members】を作ります。
下記の6種類の情報をいれたいので、カラム数は6としておきます。
id | 番号 |
name | 名前 |
メールアドレス | |
password | パスワード |
created | 作成日時 |
modified | 更新日時 |
MySQLに次のように入力します。
【ユーザー情報用テーブル members】

mysql会員情報用テーブル
ここでポイントは【データ型】と、基本となる【id】の設定です。
データ型とは
データベースを作る際は、各項目の「データの型」を指定せねばなりません。
今回使っているデータ型は、次のとおり。
【今回使ったデータ型】
TINYINT | 小さい整数。符号なしの範囲は0から255まで。ユーザー名やパスワードなど、255文字以内におさまるデータに使える。 |
---|---|
INT | 普通のサイズの整数。数字を入れるものに使える。 |
DATETIME | 日付と時間の組み合わせ。データを登録した日時を記録できる。 |
TIMESTAMP | タイムスタンプ。データベースにデータを更新する際、自動的に現在の日付と時刻を指定できる。 |
TEXT | テキスト情報を入れる。投稿内容などに使える。 |
データに合わせて、型を選んでいきましょう。
基本となるidの設定
データベースでは、主となるカラム(列)を設定します。
通常は【id】という名前にして、データが追加されるごとに、自動的に番号が付くといった形にしておきます。
今回もそのような形にします。
テーブルを作成する際、次のように、【id】のインデックスをprimaryにし、AIにチェックをいれます。
primaryを設定する際にボックスがでてきますが、そのまま【実行】ボタンを押します。

ちなみにAIはAuto-incrementの略で、自動的に番号が付くよ、という意味。
人工知能のAIではありません。
投稿情報用のテーブルを作る
それでは次に、ふたつめの投稿情報用のテーブルを作ります。
下記の6種類の情報をいれたいので、カラム数は6としておきます。
message_id | メッセージ番号 |
message | メッセージ |
created_by | 作成者 |
Created | 作成日時 |
modified | 更新日時 |
MySQLに次のように入力します。
【投稿情報用テーブル posts】

mysql投稿情報用テーブル
【message_id】のインデックスをprimaryにし、AIにチェックをいれます。
さいごに
これでデータベースができました。
続きは、次の記事で解説していきますね。
なお今回、前半の「要件定義」に書いてある内容と、データベースの内容が違っています。鋭い方は、お気づきになられたかもしれません。今回コードを解説する簡易版ではカラムを少なめに設定しているため、データベースからものぞきました。
コメント
dbはまずこれだけ作ればいいのですか?
本ブログ内で解説している内容であれば、これで大丈夫です。
投稿用の情報の4つ目は何が入りますか?
imageですが、記事では解説していないので、見えなくしてあります。