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といったそれっぽいフィールド名が使われます