前回の最後で、これでDBと接続できました、と簡単に言ったものの。
テーブルをまだ作っていませんでした。
これでは、本当につながったかについては確信が持てませんね。
ということで、実際にテーブルを作ってみましょう。
まずは、テーブルに入れる情報をイメージします。
こんな感じでしょうか。
これをテーブルに落としていきます。
テーブルの作成は前回ご紹介したMySQL Administratorや、コマンドラインから打ち込むような形で作ります。
MySQL Administratorからなら、カタログ → スキーマの選択 → Create Tableボタン でテーブル作成画面になるので、それで作ってしまうのがよいでしょう。
今回作成したテーブルは以下のようになります。
「desc」という単語の後に続いているのがテーブル名、その下がカラム名です。
-
mysql> desc categories;
-
+-------+------------------+------+-----+---------+----------------+
-
| Field | Type | Null | Key | Default | Extra |
-
+-------+------------------+------+-----+---------+----------------+
-
| id | int(10) unsigned | | PRI | NULL | auto_increment |
-
| name | varchar(50) | | | | |
-
+-------+------------------+------+-----+---------+----------------+
-
2 rows in set (0.00 sec)
-
-
mysql> desc items;
-
+------------------+-------------------+------+-----+---------------------+----------------+
-
| Field | Type | Null | Key | Default | Extra |
-
+------------------+-------------------+------+-----+---------------------+----------------+
-
| id | int(10) unsigned | | PRI | NULL | auto_increment |
-
| category_id | int(10) unsigned | | MUL | 0 | |
-
| title | varchar(100) | | | | |
-
| stars | char(1) | | | | |
-
| review | text | YES | | NULL | |
-
| status | enum('0','1','2') | | | 0 | |
-
| last_update_date | datetime | | | 0000-00-00 00:00:00 | |
-
+------------------+-------------------+------+-----+---------------------+----------------+
-
7 rows in set (0.00 sec)
ちなみに、これはMySQL専用のコマンドラインから打っています。
MySQL Administratorなら、上の メニュー → Tools → MySQL Command Line Client を選択すると見られます。
CUIなやり方でもいろんな設定を確認することもあるかと思うので、覚えておくといいでしょう。
また、作成したテーブルのSQLは、コピペして秀丸などテキストエディタで保存しておくと、後々いろいろ使いまわせたりできて便利です。
作成したファイル(DDLファイルと言います)は、プロジェクト内のapp/dbフォルダの下に入れておくと後々混同しなくていいかと思います。
なお、作成したDDLの中身は以下のとおり。
-
DROP TABLE if EXISTS `categories`;
-
CREATE TABLE `categories` (
-
`id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
-
`name` VARCHAR(50) NOT NULL,
-
PRIMARY KEY (`id`)
-
)
-
ENGINE = INNODB
-
CHARACTER SET utf8 COLLATE utf8_general_ci;
-
-
DROP TABLE if EXISTS `items`
-
CREATE TABLE `dummytunes-development`.`items` (
-
`id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
-
`category_id` INTEGER UNSIGNED NOT NULL,
-
`title` VARCHAR(100) NOT NULL,
-
`stars` CHAR(1) NOT NULL,
-
`review` TEXT,
-
`status` ENUM("0", "1", "2") NOT NULL DEFAULT 0,
-
`last_update_date` DATETIME NOT NULL,
-
PRIMARY KEY (`id`),
-
CONSTRAINT `category_id` FOREIGN KEY `category_id` (`category_id`)
-
REFERENCES `categories` (`id`)
-
ON DELETE RESTRICT
-
ON UPDATE RESTRICT
-
)
-
ENGINE = INNODB
-
CHARACTER SET utf8 COLLATE utf8_general_ci;
テーブルを設計、実際にCREATE文を実行させてみましたよ。

0 Responses to “テーブルを設計する”