2006年07月22日

タグ機能のあるWEBアプリを最小限のコードで製作する方法

もし、タグ付けのできるサイトを製作するのであれば、CakePHP の Association を使いこなしてみましょう。

例えば、
・users テーブル(ユーザの基本データ)
・profiles テーブル(ユーザの詳細情報)
・posts テーブル(投稿データ)
・tags テーブル(タグの種類)
・posts_tags テーブル(投稿データとタグの関連情報)

があったとします。CakePHP の model にきちんとこの関連情報を設定すると、

【パターンその1】
・$this->User->findById(ユーザID)で、users と profiles の両方の情報が取ってこれます。

・$this->Profile->findByID(ユーザID)で、users と profiles の両方の情報が取ってこれます。

※つまり、親子関係のあるテーブルのどちらからでも両方まとめて情報を取ってこれますし、細かい条件を指定できます。

また、

【パターンその2】
・$this->User->findById(ユーザID)で、users と profiles の両方の情報、またすべての投稿データも取ってこれます。

・$this->Post->findById(ID)で、投稿したデータと、それについているタグデータをすべて取ってこれます。

※これに関しても細かく条件が設定されているので、例えば、“承認された投稿(コメント)のみ出力”とか、“時間軸で並べ替えて出力”といったこともできます。

【パターンその1】と【パターンその2】で違うところは、“1対1の関係”か、“1対多の関係”かというところです。

【パターンその1】用として、
・hasOne    (親から子を見る)
・belongsTo  (子から親を見る)

【パターンその2】用として、
・hasMany   (親から子どもたちを見る)
・hasAndBelongsToMany[HABTMとも言う。](二つのテーブルが、もう一つのテーブルで関連づけられている状況をまとめあげる)

があります。

ラベル:PHP cakephp web framework
posted by SDozono at 12:06| ロサンゼルス 🌁| Comment(0) | TrackBack(0) | CakePHP Model | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
手(パー)To make a comment: Please type your name and comment. at the validation field box, type 'cakephp'. And there two glay buttons. "Preview"/"Submit". Thank you!