2012-02-02 4 views
1

私のデータベーススキーマの進め方と私のモデル連合のための進め方は分かりません。Cakephp hasmany、所属協会の必要性ヘルプ

沖縄、ここに行く。

モデル1:ポスト は(ID、タイトル、CATEGORY_ID、TAG_ID、ボディ、作成、修正) モデル2:カテゴリー は(ID、タイトル、説明、作成、修正) モデル3:タグ (ID、タイトル、説明、作成、修正)

Mu問題は、複数のタグとカテゴリを関連付けることができるようにデータベーステーブルを "ビルド"する方法です。

例:投稿1 belongsTo category_id = 1、およびhasManyタグ、tag_id:1,3,8,99 例2:投稿2のbelongsTo category_id = 1,5およびhasManyタグの場合、tag_id:1,8,43

基本的に、どのスキーマを使用するか、複数の関連付けを可能にするためのベストプラクティスについてはわかりません。

ありがとうございます! -Tom

答えて

1

これを実装する最も簡単な方法は、ルックアップまたは結合テーブルを使用することです。ケーキは、これらのケースでは、「多対多」関係タイプである、いわゆる「Has and Belongs To Many Many」(HABTM)関係を使用します。

このようなシナリオを処理するには、at the manual entry for HABTMをご覧ください。マニュアルには、あなたが目指している比較可能なセットアップが記載されています。あなたのケースでは

あなたはpost_idtag_id列を含むposts_tagsと呼ばれるルックアップテーブルによって結合されpoststagsテーブルを持っているでしょう。ポストモデルでHABTM関係を正しく定義すると、Cakeはデータの保存、検索、更新時に3つのテーブルを正しく使用する方法を知ります。