# データベースを準備する
今回は、phpMyAdminという、MySQL サーバーをウェブブラウザで管理するためのデータベース接続クライアントツールを利用し、データベースとユーザーテーブルの作成を行います。
Docker による環境構築が完了し、正しく Web サーバー、PHP 、MySQL の環境が動いていることが前提です。
本セクションでは message_board データベースと、 posts テーブルが作成済みの状態を目指します。
# 本セクションの流れ
phpMyAdminを使ってmessage_boardデータベースを作成する。- 1 で作成した
message_boardデータベースの中にpostsテーブルを作成する。 - DB 設計で考えた ER 図をもとに、2 で作成した
postsテーブルにカラムを定義する。
# 1. message_board データベースを作成する
message_board データベースを作成します。
phpMyAdmin にアクセス後、左サイドバー上部の「新規作成」をクリックしします。
message_board、utf8mb4_general_ci を入力してから作成ボタンをクリックします。これで message_board データベースが作成されます。utf8mb4_general_ci とは大文字・小文字を区別せず、1 ~ 4 バイトまで対応した文字コードです。

message_board テーブルが追加された様子

# 2. 1 で作成した message_board データベースの中に posts テーブルを作成する。
message_board データベースが作成できたので、その中に投稿内容を管理する posts テーブルを作成します。カラム数を 4 に指定し「実行」ボタンをクリックすることで作成できます。

# 3. DB 設計で考えた ER 図をもとに、2 で作成した posts テーブルにカラムを定義する。
今の状態ではまだ、 posts テーブルにカラムが定義されていない状態なので、具体的にどのような値が入るのかという情報がありません。 アプリケーションの設計#DB 設計 の ER 図を参考に posts テーブルにカラムを追加します。
オートインクリメント(自動採番)を指定すると、データを追加した時にカラムに対して現在格納されている最大の数値に 1 を追加した数値を自動で格納することができます。カラムに連続した数値を自動で格納したい場合に便利です。
ER 図を元に以下の表の値を入力します。
| 名前 | タイプ | 長さ/値 | デフォルト値 | インデックス | A_I(AUTO_INCREMENT) |
|---|---|---|---|---|---|
| id | int | なし | PRIMARY | ✅ | |
| author_name | varchar | 255 | なし | ||
| message | text | なし | |||
| created_at | timestamp | CURRENT_TIMESTAMP |
phpMyAdmin へ入力

NULL インデックスに PRIMARY を指定すると以下のポップアップが表示される場合がありますが、そのまま「実行」ボタンをクリックします。

保存をクリック後、最終的に以下のようになります。
表示されているテーブルの構造
| 名前 | タイプ | 整合順序 | 属性 | NULL | デフォルト値 | コメント | その他 |
|---|---|---|---|---|---|---|---|
| id | int | いいえ | なし | AUTO_INCREMENT | |||
| author_name | varchar(255) | utf8mb4_general_ci | いいえ | なし | |||
| message | text | utf8mb4_general_ci | いいえ | なし | |||
| created_at | timestamp | いいえ | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
これで、 message_board データベースに posts テーブルが作成されました。