2011-09-23 8 views
-1

J'ai une table familiers, une table mages et une table mages_familiars où je garde quel familier appartient à quel Mage.Cakephp Débutant Question sur le modèle

Comment puis-je modéliser ce tableau de références croisées?

Merci à l'avance

+0

Avez-vous lu le manuel? Il y a une [section entière] (http://book.cakephp.org/view/1039/Associations-Linking-Models-Together) consacrée à cela. Qu'avez-vous essayé? – Ross

+0

Je ne peux pas trouver où il est dit sur les tables de références croisées – chchrist

+0

C'est parce que vous n'en avez pas besoin. – JJJ

Répondre

3

Vous n'avez pas besoin de la table intermédiaire à moins qu'il est possible qu'un familier peut appartenir à plusieurs mages et peut avoir plusieurs mages familiers (une relation HABTM). Dans ce cas, la table doit avoir les champs id (int), created (date/heure), modified (date/heure), mage_id (int) et familiar_id (int). En outre, la table doit être nommée familiars_mages.

Si un familier peut appartenir à un seul mage, un familier belongsTo et un mage hasMany familiers. La table familiars doit avoir un champ mage_id.

Si un familier ne peut appartenir qu'à un seul mage et qu'un mage ne peut en connaître qu'un seul, vous pouvez utiliser une relation hasOne. Dans ce cas, la table mages a un champ familiar_id ou la table familiars a un champ mage_id.

+0

J'ai donc besoin d'une table de références croisées uniquement lorsqu'il y a une relation HABTM? – chchrist

+0

Droite. Si vous lisez la documentation sur chacune des relations et qu'elles ne mentionnent pas de table de référence, vous n'en avez pas besoin. – JJJ

+0

Merci tout est plus clair maintenant! :) – chchrist