CakePHPで家計簿WEBアプリを作る ブログチュートリアルのおさらい ITかあさん

ITかあさん

CakePHPで家計簿WEBアプリを作る ブログチュートリアルのおさらい

CakePHPのテーブル構造、命名規則のおさらい

まずはCakePHPのテーブル構造のおさらいから。購入品を管理するテーブルを作成します。
PHPmyadminから登録をしてもよいのですが、面倒な方は以下SQLをコピーしても大丈夫です。


SQL

CREATE TABLE IF NOT EXISTS `purchases` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `money` int(11) DEFAULT '0',
  `category_id` int(11) DEFAULT NULL,
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `category_id` (`category_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='支出';

category_idフィールドはあとで使いますから、先に作っておいてください。

CakePHPでテーブルを作る時の命名規則

CakePHPではテーブルを作る時に大事な決まり、命名規則というものがありましたね。

  • テーブル名は必ず英単語の複数系で
  • 登録日時のフィールドはcreated
  • 編集日時のフィールドはmodified
  • AUTO_INCREMENTのフィールドはid

命名規則以外で必ずやること

前回のCakePHPの入門で触れていなかったかもしれないので念のため

  • PRIMARY KEY (`id`)を必ず用意する

CakePHP以外のWEB開発でテーブルに必ずしもPRIMARY KEYを用意しないケースがあると思います。
結合して表示するだけ、とか。

しかし、CakePHPの場合PRIMARY KEYを用意しないテーブルは推奨されません。
これは、複数テーブルを連携させようと思ったとき、テーブルの結合に失敗するからです。

また、複合PRIMARY KEYも推奨されません。
PRIMARY KEYを持たないテーブルでCakePHP開発をすると、CakePHP側でテーブルの結合が行われず、SQLを自分で書かなければなりません。
CakePHPの機能を最大限に使いたいなら

  • PRIMARY KEY (`id`)を必ず用意する

これを忘れないで下さい。後で記述が少なくすみますので極力idフィールドをPRIMARY KEYにして下さいね。

この命名規則を教わると、絶対疑問に思うのが、

じゃ、命名規則から外れるとどうなるんですかっ!

ということなのですが、結論から言って

全然出来る!しかし仕事が増える!

ということだけ。
私が最近やったのだと、

WordPressのDBをCakePHPで呼び出し

したことです。CakePHPで作られていないものを、CakePHP環境で出力するというものですが、ここで説明すると長くなるので詳しくはこちらを参考にして下さい。

Cakephpの命名規則を完全無視して作ってみた
このページの
『テーブル名が命名規則から外れていた時のModelの書き方』
を、参考にして下さい。
初夏のJavaScript祭 in サーキュレーションビル ForPro

ページ: 1 2 3 4 5 6 7 8 9