めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Fast CakePHPのToDo管理(1)データベースの用意

Fast CakePHPに載っていたToDo管理システムを、作ってみます。
使用感とかわかるかなあ、と思ったので。

データベースを用意する

  • tasksというテーブルを作る
  • 使うのは、cakeというDB(設定済)
実行したSQL
CREATE TABLE `tasks` (
`id` int(11) unsigned NOT NULL auto_increment,
`content` text NOT NULL,
`status` enum('yet','done') NOT NULL default 'yet',
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `status` (`status`),
KEY `created` (`created`),
KEY `modified` (`modified`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

なんだか上手くいかず、

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
CREATE TABLE `tasks` (
  `id` int(11) unsigned NOT NULL auto_increment,
  `content` text NOT NULL,
  `status` enum('yet','done') NOT NULL default 'yet',
  `created` datetime NOT NULL,
  `modified` datetime NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `status` (`status`),
  KEY `created` (`created`),
  KEY `modified` (`modified`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
結果
mysql> desc tasks;
+----------+--------------------+------+-----+---------+----------------+
| Field    | Type               | Null | Key | Default | Extra          |
+----------+--------------------+------+-----+---------+----------------+
| id       | int(11) unsigned   | NO   | PRI | NULL    | auto_increment | 
| content  | text               | NO   |     |         |                | 
| status   | enum('yet','done') | NO   | MUL | yet     |                | 
| created  | datetime           | NO   | MUL |         |                | 
| modified | datetime           | NO   | MUL |         |                | 
+----------+--------------------+------+-----+---------+----------------+
5 rows in set (0.02 sec)

テーブルの作成で気になった点

  • テーブルの名称が複数形なのはRuby On Railsと同じ
  • createdと、modifiedのフィールドは、CakePHPの規約にあるらしい。この規約に沿っておくと、自動更新してくれるらしい(そりゃ便利かも)

テストデータの挿入

テストデータを用意しておくのはいいかも。フォームとか作ってテストデータを入れてました。

INSERT INTO `tasks` (`id`, `content`, `status`, `created`, `modified`) VALUES (1, '一通り', 'done', '2007-08-20 00:00:00', '2007-08-21 01:00:00');

色々試行錯誤

mysql> select * from tasks;                                                                                             
+----+---------+--------+---------------------+---------------------+
| id | content | status | created             | modified            |
+----+---------+--------+---------------------+---------------------+
|  1 |         | done   | 2007-08-20 00:00:00 | 2007-08-21 01:00:00 | 
|  2 | test2   | done   | 2007-08-20 00:00:00 | 2007-08-21 01:00:00 | 
|  3 | test3   | yet    | 2007-08-21 02:00:00 | 2007-08-23 01:00:00 | 
+----+---------+--------+---------------------+---------------------+
3 rows in set (0.00 sec)

参考にした書籍

Fast CakePHP (LLフレームワークBOOKS)

Fast CakePHP (LLフレームワークBOOKS)