データベース設計:掲示板
掲示板概要
- BBS(Bulletin Board System)
- 作りたい機能をもとにデータベース設計をする必要があります
- 図式化して考える
- どのようなデータをどのようなデータ型で保存するのかということを決めるのがデータベースの設計です
掲示板利用者の役割(ロール)
- 掲示板利用者には誰がいるか
- 大きく分けて「閲覧者」「投稿者」「管理者」の3つのタイプの利用者
ロールとログイン
- 業務で扱うシステムの場合、ロールごとに実行してもよい機能が異なるため、ロールごとに認証管理をおこなって機能に制限をかける場合も多い
データの流れを捉える(データフロー)
- コメントデータを記録「投稿者」→コメント投稿プログラム
- コメントデータを表示「閲覧者」→コメント一覧表示プログラム
交流サイト掲示板の仕様検討
- 書き込み番号(通し番号)
- 名前
- 書き込みのタイトル
- 本文
- 書き込み日時
- 削除パスワード
MySQLのデータ型
数値型
型 | 型の名称 | 利用例 |
---|---|---|
INT | 整数型 | 連番、個数など |
DOUBLE | 倍精度浮動小数点数型 | 体重など小数点を含むもの |
日付時刻型
型 | 型の名称 | 利用例 |
---|---|---|
DATE | 日付型 |
日付 |
DATETIME | 日付時刻型 | 日付と付時刻 |
文字列型
型 | 型の名称 | 利用例 |
---|---|---|
CHAR | 固定長文字列型 |
郵便番号など桁数が決まっているもの 型名の後に()で文字列長を指定する |
VARCHAR | 可変長文字列型 | 名前、住所など 型名の後に()で最大長を指定する |
TEXT | 文字列型 | 本文など長い文章 |
データベース設計:掲示板
- データベース名「tennis」
- テーブル名「bbs」
bbsテーブルの設計
カラム名 | カラム型 (長さ) |
NOT NULL 制約 |
説明 |
---|---|---|---|
id | INT | ○ | 書き込みの通し番号。主キー。自動採番にする |
name | VARCHAR(255) | ○ | 書き込みを行った人の名前。長さは255文字まで。 |
title | VARCHAR(255) | - | 書き込みのタイトル。長さは255文字まで。タイトルがないときは「無題」と表示する |
body | TEXT | ○ | 本文 |
date | DATETIME | ○ | 書き込み日時 |
pass | CHAR(4) | ○ | 4桁の数字で削除パスワード |
主キーの決め方
- id が「主キー」
- テーブルの中でレコードを識別する一意な値
- id の数字は「ユニーク」(=重複しない)
NOT NULL 制約
- 「そのカラムに必ずデータを入れる」という約束を示す
- NULL では、ダメという意味
- title以外の項目にはすべてなんらかのデータを入れる必要があるということを示しています