5月 23
01.データベースの作成
いろんなやり方があるとは思いますが、まずはデータベースを作っておくのがいいと思います。
MySQLで作りました。
NOT NULLとdefault NULLがうるさいですね(^^;
CREATE DATABASE cake_db CHARACTER SET utf8; GRANT all ON cake_db.* TO cake_user@localhost IDENTIFIED BY 'password';
usersは管理側の管理者アカウントです。
管理側はAuthコンポーネントを使って認証するので、テーブル名をusersにしておきます。
他の名前でも可能ですが、usersがAuthコンポーネントのデフォルトなのでそうしておいた方が面倒がなくてよいです。
CREATE TABLE users ( id int(11) unsigned NOT NULL auto_increment, username varchar(100) NOT NULL, password varchar(100) NOT NULL, name varchar(100) default NULL, email varchar(100) default NULL, PRIMARY KEY (id) )DEFAULT CHARSET=utf8;
membersは会員の情報を入れるテーブルです。
本当はここにstatusフィールドを入れて、仮登録・本登録の処理を入れたかったのですが、今回は見送りました。
CREATE TABLE members ( id int(11) unsigned NOT NULL auto_increment, email varchar(100) NOT NULL, password varchar(100) NOT NULL, type_id int(11) unsigned NOT NULL, birthday date default NULL, img1 varchar(255) default NULL, img2 varchar(255) default NULL, created datetime NOT NULL, modified datetime NOT NULL, PRIMARY KEY (id), KEY type_id (type_id) )DEFAULT CHARSET=utf8;
typesは会員種別のマスターです。
一般会員、とか特別会員、とかのデータを入れます。
CREATE TABLE types ( id int(11) unsigned NOT NULL auto_increment, name varchar(100) NOT NULL, PRIMARY KEY (id) )DEFAULT CHARSET=utf8;
favoritesは会員の「好きな物」の選択値を入れます。
「好きな物」でも「趣味」でも何でもいいんですが、要は複数選択の場合の処理を入れたかったのです。
CREATE TABLE favorites ( id int(11) unsigned NOT NULL auto_increment, name varchar(100) NOT NULL, PRIMARY KEY (id) )DEFAULT CHARSET=utf8;
members_favoritesは会員情報と好きな物を関連づけるためのテーブルです。
多対多の関係になるのでいわゆるHABTMの連結になります。
CREATE TABLE members_favorites ( id int(11) unsigned NOT NULL auto_increment, member_id int(11) unsigned NOT NULL, favorite_id int(11) unsigned NOT NULL, PRIMARY KEY (id), KEY member_id (member_id), KEY favorite_id (favorite_id) )DEFAULT CHARSET=utf8;
