2010-11-30 15 views
1

私はHTBTMのrelantionshipに次のデータベーステーブル名を使用している場合:HABTMはHABTM関係を持つテーブルを結合する

**dressess** 
id 

**dressess_categories** 
id 
dress_id 
category_id 

**categories** 
id 

私はHABTM関係のためのデータベーステーブル名を作成しなければならないのは、dressess_categoriesでそれを必要とする方法たとえば、

**dressess_categories** 
id 

**colors_dress_categories** <--- It is named right? 
id 
dress_category_id <--- It is named right? 
color_id 

**colors** 
id 

ありがとうございます。

dresses_categories /* incorrect */ 
categories_dresses /* correct */ 

を今当面の問題のために:私が正しくあなたの質問を理解していれば、あなたがしようとしている

答えて

1

まず、結合テーブルは、CakePHPは自動的にそれらを認識するためにアルファベット順にモデル名を持っている必要がありますColorモデルと異なるHABTM関係に使用される結合テーブルの間にHABTM関連付けを作成しますか?これは不可能です。 (そうであれば、それはケーキハックオンとなるでしょう)。

最初に、関係がデータベーステーブル間で関係しているので、それをやめてください。関係はCakePHPモデルの間で定義され、テーブルがそれらを駆動します。適切な外部キーを持つ

Dress   -> hasMany -> DressCategory 
Category  -> hasMany -> DressCategory 
DressCategory -> belongsTo -> Category, Dress 
DressCategory -> HABTM  -> Color 
Color   -> HABTM  -> DressCategory 

そして5つのテーブル::

dresses 
------- 
id 

categories 
---------- 
id 

dress_categories 
---------------- 
id 
dress_id 
category_id 

colors 
------ 
id 

colors_dress_categories 
----------------------- 
id 
color_id 
dress_category_id 

Dress 
Category 
DressCategory 
Color 

そうのような関係を定義します:あなたは、このタスクを達成するために行う必要がありますと、4つのモデルが作るです

+0

ステファンありがとうございます。私は私が近いと知っています。 – josoroma

+0

問題ありません!お役に立てて嬉しいです。 – Stephen

関連する問題