CakePHPのテーブル規約

調べてみたら、もっといろいろ制約がありました。。
http://gihyo.jp/dev/serial/01/cakephp/0005

テーブル名は複数形。

 しかも「英語的に正しい複数形」を要求されるそうです。


……複数形のない単語は?
 その場合は、単数形のまま(peopleとか)で良いようです。
http://book.cakephp.org/ja/revisions/view/2995/
 このパターン、割りとハマりやすいようで・・・person,informationなどが鬼門の模様。
 http://kashioka.net/2009/02/cakephp-information.html


 オリジナルの定義を入れて逃げることもできるみたいですが。
http://www.onlineconsultant.jp/pukiwiki/index.php?CakePHP%20%E8%A4%87%E6%95%B0%E5%BD%A2%E3%81%AE%E8%A8%AD%E5%AE%9A

複数単語からなるテーブル名はアンダースコア区切り

 これは今まで、暗黙でやってました。
 MySQLって、普通テーブル名に大文字使えませんし。

外部キーとJOINに注意

http://book.cakephp.org/ja/revisions/view/2995/

hasMany, blongsTo, hasOne 中の外部キーは、デフォルトで関連するモデルの(単数形の)名前に _id を付けたものとして認識されます。ケーキ職人(backer)がケーキ(cakes)を複数持っている(hasMeny)としたら、cakes テーブルは、baker_id を外部キーとして bakers テーブルのデータを参照します。

モデル間の hasAndBelongsToMany (HABTM) の関係で使用される join テーブルは、join するテーブルに合わせて、アルファベット順に(zebras_apples ではなく、apples_zebras)並べた名前にしてください。

ややこしい・・・・

プライマリキーはid

 これは一応把握してました ^^;
 ちょっとかじったsymfonyも同様だったので

作成日時はcreated, 変更日時はmodefied

 これが、symfonyと違いました・・・
 created_atにupdated_atとしてました。。

 DB定義作り直しー;;;