データベースの定義を変更する
上記モデルをデータベースの定義に変換してみる。以下のようなSQLが考えられる。
CREATE TABLE categories (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
CREATE TABLE posts (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
category_id INT UNSIGNED, ←①
title VARCHAR(50),
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
KEY category_id (category_id) ←②
);
CREATE TABLE comments (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
post_id INT UNSIGNED, ←③
name VARCHAR(50),
comment TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
KEY post_id (post_id) ←④
);
このテーブルをphpMyAdminで登録してみる。blogデータベースにpostsテーブルを作成したときと同じ要領。ただし、postsテーブルにはcategory_idが追加されていて(①)、インデックス(②)になっているので注意。
同様にcommentsテーブルにもpost_idとうインデックスを忘れずに作成する(③、④)。
※本来テーブルの結合は外部キーにして制約を設けたほうが良いが、ここでは省略。
最終更新:2007年05月15日 18:59