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