てきとう

ワーワーゆうとります

CakePHP データベース設計

database.phpを作る。
とりあえず作る。
database.php.defaultを元にしてつくります


class DATABASE_CONFIG {
  var $default = array(
   'driver' => 'mysql',
   'connect' => 'mysql_connect',
   'host' => 'localhost',
   'login' => 'user',
   'password' => 'passwd',
   'database' => 'example',
   'prefix' => ''
  );
}


driver
使用するドライバ

connect
接続方法

host
ホスト名

login
ユーザー名

password
パスワード

database
使用するデータベース名

prefix
テーブル接頭辞の設定
(ここで設定した文字列は、すべての SQL呼び出しの際にテーブル名に追加されます。
この1箇所での設定がすべての場所で用いられます。
データベースが一つしかないホストを利用している場合でも、
これを使用することで Cake のテーブル命名規約に従うことができます。)


★規約(命名関係)
テーブル名は複数形(正しい英語の複数形です)複数形のない単語はそのままで(News等)

主キーは「id」ちなみに主キーは必須です。複数主キーには対応してないようです。
複数形の登録、変化させない単語の登録等はconfig/inflections.phpを見るとよいかもしれません。
外部キーは「モデル名_id」で設定可能。
作成日は「created」にしておくと、insert時に自動で日時を入れてくれます。
更新日は「modified」や「updated」にすると、update時に自動で日時を入れてくれます。
HABTMの橋渡しとなるjoinテーブルは「複数形_複数形」
HABTMって何?という説明については、また別のお話…。

☆ちょっといい話
データ型が何かによって入力フォームの形式も合わせてくれる親切設計。

text
入力フォームがtextareaに

varchar
入力フォームがinputに

boolとかtinyintとか
入力フォームがcheckboxに

belongsToで関連付けされているフィールドはプルダウンになります。
HABTMで関連付けされているフィールドは入力フォームはマルチプルダウンになります
プルダウン等の選択項目のラベルはnameやtitleといったそれっぽいフィールド名が使われます