2010-11-30 7 views
1

Si j'ai les noms des tables de base de données suivantes dans un relantionship de HTBTM:jointure HABTM table avec une relation HABTM

**dressess** 
id 

**dressess_categories** 
id 
dress_id 
category_id 

**categories** 
id 

Comment dois-je créer les noms de table de base de données pour une relation HABTM besoin dans dressess_categories table, par exemple:

**dressess_categories** 
id 

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

**colors** 
id 

Merci d'avance.

Répondre

1

Tout d'abord, la table de jointure doit avoir les noms de modèle dans l'ordre alphabétique pour CakePHP les reconnaître automagiquement:

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

Maintenant pour le problème à portée de main: Si je comprends bien votre question, vous essayez de créer une association HABTM entre un modèle Color et la table de jointure utilisée pour une relation HABTM différente? Ce n'est pas possible. (ou si c'est le cas, ce sera un gâteau-hack-a-thon). Tout d'abord, cessez de penser aux relations en relation avec les tables de base de données. Les relations sont définies entre les modèles CakePHP et les tables les pilotent. Ce que vous devez faire pour accomplir cette tâche est faire quatre modèles:

Dress 
Category 
DressCategory 
Color 

définissent les relations comme si:

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

Et cinq tables avec les clés étrangères appropriées:

dresses 
------- 
id 

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

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

colors 
------ 
id 

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

Merci Stephen. Je sais que j'étais proche. – josoroma

+0

Pas de problème! Heureux d'avoir pu aider. – Stephen

Questions connexes