CAKEPHP データベースの設計 ITかあさん

ITかあさん

CAKEPHP データベースの設計

動画をもっと大きく見たい方はこちら

CakePHPの便利なところは

  • 面倒な処理(SQLはCakePHP側で勝手にやってくれる)
  • データベースの種類に依存しない

これに限ると思います。

これらの便利な機能を存分に発揮するにはCakePHPに沿ったデータベースの設計が必要です。

CakePHPのデータベース設計のコツ

  • フィールドの型は命名規則を守る

CakePHPの機能を存分に使うためにはCakePHP独自の命名規則を守らなければなりません。

今回は簡易的なブックマークアプリを作成します。

データベースの内容

  • ID
  • タイトル
  • URL
  • 登録日時
  • 更新日時

SQL

CREATE TABLE posts (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50),
url VARCHAR(50),
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);

まずテーブル名ですが、これにも大事な規則があり、仮にpostという内容のテーブルを作成したいなら、postsと、必ず複数形にします。

id名はpost_idとか余計なことはせず、ただidと書きます。で、

URLとタイトルについては特に変わらずいつものデータベース設計と一緒。

登録日時と更新日時の登録については重要な命名規則があります。

登録日時はcreated,更新日時はmodified

登録日時や更新日時をデータベースに登録するにはPHP側でdate関数を使って取得しなくてもCakePHPが勝手にやってくれます!すばらしか!

登録日時と更新日時がほしい場合は登録日時はcreated,更新日時はmodifiedというフィールド名を作成し、DATETIME型にする。これだけです。

なお、今回は多数の書き込みを予想してデータベースの種類はMysqlのinnoDBにしました。私もまだデータベースについてはまだ初心者ですが、SELECT文についてはMyisamが早く、トランザクション機能とサブクエリが投げられるのがnnoDB。それぞれの特徴をつかんで使い分けるとよさげです。

今日のまとめ

テーブル名は複数系。オートインクリメントはid、登録日時はcreated,更新日時はmodifiedとそれぞれCakePHPの命名規則に沿って名前をつけること!

初夏のJavaScript祭 in サーキュレーションビル ForPro