- Posted at 2009/04/04 17:44
- Categories: CakePHP修行を追う

さて、ではでは続きを始めましょ。
なお、この記事の前後はこちらのカテゴリーでごらんになれます。
今回追うのは、こちら。
これまでのはオールリセット・・・・・あぅ(^^;)
フォルダ構成・パーミッション等は以前設定したものでよし、と。
新しくテーブル設定をやり直すみたいですね。
以下のようにデータベースのテーブルを設定します。
Users
DROP TABLE IF EXISTS users;
CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(255),
pwd VARCHAR(255),
profile TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
Posts
DROP TABLE IF EXISTS posts;
CREATE TABLE posts (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT UNSIGNED,
title TEXT,
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
Friends
DROP TABLE IF EXISTS friends;
CREATE TABLE friends (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT UNSIGNED,
friend_user_id INT UNSIGNED,
status INT UNSIGNED,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
ふむふむ。。なるほど。
続いてこちら。
本家がかかれている時点ではあまり日本語の書籍がなかったように思いますが、現在では結構出てますよね。

CakePHP ポケットリファレンス (Pocket Reference)

オープンソース徹底活用 CakePHPによるWebアプリケーション開発
などなど。
で、DBに関してですが、本家の前回の記事に、こちらのツッコミが入ってました。
う〜ん、、すごい。
ということで、データベースのテーブル設計を変更!
Users
DROP TABLE IF EXISTS users;
CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(255) BINARY NOT NULL UNIQUE,
pwd VARCHAR(255),
profile TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
お〜〜、emailはBINARYを使うのか〜、しかもUNIQEインデックスを付けると!
なるほど〜〜!!
Posts
DROP TABLE IF EXISTS posts;
CREATE TABLE posts (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT UNSIGNED,
title TEXT,
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
KEY user_id_created (user_id, created)
);
このuser_id_createdというインデックスは、複数インデックスというのか。。。知らなかった(^^;)
いや〜〜、勉強になるな〜。
Friends
DROP TABLE IF EXISTS friends;
CREATE TABLE friends (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT UNSIGNED,
friend_user_id INT UNSIGNED,
status INT UNSIGNED,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
UNIQUE KEY user_id_friend_user_id (user_id, friend_user_id),
KEY user_id_status_modified (user_id, status, modified)
);
こちらも複数インデックスが追加になってます。
なるほどなるほど。。。
ちなみに私自身複数インデックスという技を知りませんでした(^^;)
調べたところ、以下のようなサイトを見つけました。
なるほどね〜〜。。。
というか、僕、CakePHPの前に、MySQLを勉強した方がいいんじゃない?的な感じです(^^;)
いや〜、ホント、勉強になるな〜〜(^^;)
感謝、感激!!
こちらの記事もあわせてどうぞ!
関連書籍
- Newer: Google がサイトとして認識するページ数は?
- Older: 「CakePHP修行」を追う #2
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.multiburst.net/ElectricBrain/2009/04/chase-of-training-the-cakephp-3/trackback
- Listed below are links to weblogs that reference
- 「CakePHP修行」を追う #3 from ElectricBrain Standard





