Skip to content

初期 DB を用意する

1. XAMPP を起動する

XAMPP Control Panel を開き、「Start」ボタンをクリックして Apache と MySQL を起動します。

この状態(Apache と MySQL が起動状態)になれば OK!

1-1

2. phpMyAdmin にアクセスする

Web ブラウザを開き、http://localhost/phpmyadmin/と入力し、Enter キーを押して phpMyAdmin にアクセスします。

1-2

3. SQL タブを開く

phpMyAdmin のトップページにある「SQL」タブをクリックします。

1-3

4. SQL クエリを実行

この SQL をコピーして、SQL を実行することで、初期 DB の作成とテーブルの準備が完了します。

カラムtitleについては、テーブルの設計が終わっているので設定できない。また、本来ならばpost_noに自動採番を設定したいが、この設計がクソなのでできない。

sql
CREATE USER syskai_user@localhost;          # syskai_userを作成
GRANT ALL ON *.* TO syskai_user@localhost;  # 全権限をsyskai_userに付与
ALTER USER syskai_user@localhost IDENTIFIED BY 'syskai_pass'; # 当該ユーザにパスワードを設定


CREATE DATABASE bbs_sample1;                # データベース bbs_sample1 を作成
USE bbs_sample1;                            # bbs_sample1を操作

CREATE TABLE content (
    post_no INT UNSIGNED,
    reply_no INT UNSIGNED,
    title VARCHAR(64),
    reg_timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    message VARCHAR(256) NOT NULL,
    PRIMARY KEY (post_no, reply_no),
    FULLTEXT (title, message)
);   # テーブルを作成(詳細は下に記載)
CREATE USER syskai_user@localhost;          # syskai_userを作成
GRANT ALL ON *.* TO syskai_user@localhost;  # 全権限をsyskai_userに付与
ALTER USER syskai_user@localhost IDENTIFIED BY 'syskai_pass'; # 当該ユーザにパスワードを設定


CREATE DATABASE bbs_sample1;                # データベース bbs_sample1 を作成
USE bbs_sample1;                            # bbs_sample1を操作

CREATE TABLE content (
    post_no INT UNSIGNED,
    reply_no INT UNSIGNED,
    title VARCHAR(64),
    reg_timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    message VARCHAR(256) NOT NULL,
    PRIMARY KEY (post_no, reply_no),
    FULLTEXT (title, message)
);   # テーブルを作成(詳細は下に記載)

1-4

貼り付ける位置

赤枠兄に SQL を貼り付け、黄枠内ボタンタップで実行可能。

作成するユーザについて

この操作を続行すると、あらゆる権限を持つsyskai_userが新しくデータベースの操作ユーザとして作成されます。
パスワードはsyskai_passです。

作られるテーブルについて

作るカラム

  • post_no:投稿番号(スレッドの番号)
    INT (整数)型、11 桁、正負符号なし(0~4294967295)
  • reply_no:返信番号
    INT(整数) 型、11 桁、正負符号なし(0~4294967295)
  • title:各投稿につけられるタイトル(スレタイ)
    VARCHAR(可変長文字) 型、64 文字
  • reg_timestamp:登録タイムスタンプ
    DATETIME(日時) 型、挿入時に値未指定のとき挿入日時を入れるようデフォルト値を設定。
  • message:投稿内容や返信内容(メッセージ)
    VARCHAR(可変長文字)型

主キー制約(プライマリキー)
post_no,reply_noからなる複合主キーとして登録する。

非 NULL 制約
reg_timestamp,message

自動採番(1 から順番に番号を振ってくれる)
残念な設計なので、導入は見送り。

全文検索
title,messageの複合インデックス。追加機能で、検索機能を取り込むことを前提としたインデックス。
全文検索の複合インデックスの場合、記憶が正しければ単一カラムのみ抽出することとなった場合であっても大きな性能低下は起こらないはずなので、手を抜いて複合インデックスとする。

照合順(文字列)
多分、utf8mb4_general ※ Unicode 絵文字(😀 など)が格納可能な方式。

4. クエリを実行する

「実行」ボタンをクリックしてクエリを実行します。

これで、指定されたデータベースbbs_sample1とテーブルcontentが作成されます。

エラーが出たとき

エラーが出たときは、入力ミスが無いかチェック