2010-11-30 67 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 

在此先感謝。

回答

1

首先,連接表需要有按字母順序排列的型號名稱爲CakePHP的,自動將識別它們:

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

現在手頭的問題:如果我正確理解你的問題,你想在Color模型和用於不同HABTM關係的連接表之間創建HABTM關聯?這不可能。 (或者如果是的話,它將成爲一個蛋糕黑客)。

首先,不要再考慮數據庫表格之間的關係。關係在CakePHP模型之間定義,表格驅動它們。你將需要爲了完成這個任務做的就是四個型號:

像這樣
Dress 
Category 
DressCategory 
Color 

定義關係:

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

和五個表與適當的外鍵:

dresses 
------- 
id 

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

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

colors 
------ 
id 

colors_dress_categories 
----------------------- 
id 
color_id 
dress_category_id 
+0

謝謝斯蒂芬。我知道我很接近。 – josoroma 2010-11-30 13:46:30