In: Ruby / Rails| technology
18 3月 2007前回の最後で、これで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の中身は以下のとおり。
[mysql]
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;
[/mysql]
テーブルを設計、実際にCREATE文を実行させてみましたよ。
ゆるーく、ふわーっと、興味のままに。
自分のかたわらに置いておくメモ代わり。