テーブルを設計する

前回の最後で、これでDBと接続できました、と簡単に言ったものの。
テーブルをまだ作っていませんでした。
これでは、本当につながったかについては確信が持てませんね。

ということで、実際にテーブルを作ってみましょう。


まずは、テーブルに入れる情報をイメージします。
こんな感じでしょうか。

チーズスイートホーム(2)

カテゴリー:コミック
商品名:チーズスイートホーム(2)
評価:☆☆☆☆☆
レビュー:これは癒される。
状態:プライベート(他人には公開されていません)
最終更新日:2007/03/18

これをテーブルに落としていきます。
テーブルの作成は前回ご紹介したMySQL Administratorや、コマンドラインから打ち込むような形で作ります。
MySQL Administratorからなら、カタログ → スキーマの選択 → Create Tableボタン でテーブル作成画面になるので、それで作ってしまうのがよいでしょう。

今回作成したテーブルは以下のようになります。
「desc」という単語の後に続いているのがテーブル名、その下がカラム名です。

CODE:
  1. mysql> desc categories;
  2. +-------+------------------+------+-----+---------+----------------+
  3. | Field | Type             | Null | Key | Default | Extra          |
  4. +-------+------------------+------+-----+---------+----------------+
  5. | id    | int(10) unsigned |      | PRI | NULL    | auto_increment |
  6. | name  | varchar(50)      |      |     |         |                |
  7. +-------+------------------+------+-----+---------+----------------+
  8. 2 rows in set (0.00 sec)
  9.  
  10. mysql> desc items;
  11. +------------------+-------------------+------+-----+---------------------+----------------+
  12. | Field            | Type              | Null | Key | Default             | Extra          |
  13. +------------------+-------------------+------+-----+---------------------+----------------+
  14. | id               | int(10) unsigned  |      | PRI | NULL                | auto_increment |
  15. | category_id      | int(10) unsigned  |      | MUL | 0                   |                |
  16. | title            | varchar(100)      |      |     |                     |                |
  17. | stars            | char(1)           |      |     |                     |                |
  18. | review           | text              | YES  |     | NULL                |                |
  19. | status           | enum('0','1','2') |      |     | 0                   |                |
  20. | last_update_date | datetime          |      |     | 0000-00-00 00:00:00 |                |
  21. +------------------+-------------------+------+-----+---------------------+----------------+
  22. 7 rows in set (0.00 sec)

ちなみに、これはMySQL専用のコマンドラインから打っています。
MySQL Administratorなら、上の メニュー → Tools → MySQL Command Line Client を選択すると見られます。

CUIなやり方でもいろんな設定を確認することもあるかと思うので、覚えておくといいでしょう。

また、作成したテーブルのSQLは、コピペして秀丸などテキストエディタで保存しておくと、後々いろいろ使いまわせたりできて便利です。
作成したファイル(DDLファイルと言います)は、プロジェクト内のapp/dbフォルダの下に入れておくと後々混同しなくていいかと思います。

なお、作成したDDLの中身は以下のとおり。

MySQL:
  1. DROP TABLE if EXISTS `categories`;
  2. CREATE TABLE `categories` (
  3.   `id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  4.   `name` VARCHAR(50) NOT NULL,
  5.   PRIMARY KEY (`id`)
  6. )
  7. ENGINE = INNODB
  8. CHARACTER SET utf8 COLLATE utf8_general_ci;
  9.  
  10. DROP TABLE if EXISTS `items`
  11. CREATE TABLE `dummytunes-development`.`items` (
  12.   `id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  13.   `category_id` INTEGER UNSIGNED NOT NULL,
  14.   `title` VARCHAR(100) NOT NULL,
  15.   `stars` CHAR(1) NOT NULL,
  16.   `review` TEXT,
  17.   `status` ENUM("0", "1", "2") NOT NULL DEFAULT 0,
  18.   `last_update_date` DATETIME NOT NULL,
  19.   PRIMARY KEY (`id`),
  20.   CONSTRAINT `category_id` FOREIGN KEY `category_id` (`category_id`)
  21.     REFERENCES `categories` (`id`)
  22.     ON DELETE RESTRICT
  23.     ON UPDATE RESTRICT
  24. )
  25. ENGINE = INNODB
  26. CHARACTER SET utf8 COLLATE utf8_general_ci;

ここまでの結果

テーブルを設計、実際にCREATE文を実行させてみましたよ。

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加 |

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


  1. No Comments

Leave a Reply