Relazione Many_Many

Salve ragazzi,

vorrei un chiarimento su come si gestisce una relazione MANY_MANY tra due tabelle.

Supponiamo di avere due tabelle con una relazione N:N, devo creare un Model che gestisce la tabella rel_tab1_tab2? Oppure ci sono altri modi?

Vi ringrazio

Salve Dky,

io ho gestito la cosa in questa maniera:

Mettiamo un semplice esempio di relazione Many2Many tra Prodotti (tabella db_product) e Categorie (tabella db_category).

E’ necessario ovviamente (per un DB Relazionale) creare la tabella di correlazione che chiameremo lk_products_categories, e crei il modello relativo.

Nel sudetto modello dovresti indicare le relations ai Prodotti ed alle Categorie:




public function relations()

{

	return array(

		'productLkProductsCategories' => array(self::BELONGS_TO, 'Product', 'product_lk_products_categories'),

		'categoryLkProductsCategories' => array(self::BELONGS_TO, 'Categorie', 'category_lk_products_categories'),

		);

}

Nel Modello Product dovresti indicare la seguente relation (e potresti fare lo stesso per il model Category):




public function relations()

{

	return array(

'categories' => array(self::MANY_MANY, 'Categories', '{{lk_products_categories}}(product_lk_products_categories, category_lk_products_categories)','joinType'=>'LEFT JOIN'),

);

}

Cosi facendo avrai modo di accedere tramite ActiveRecord a tutto ciò che ti serve…di certo ci sarà chi potrà darti suggerimenti migliori…ma credo che già sia qualcosa! :)

Spero di esserti stato utile…ed in caso di dubbi domanda pure!

P.S. Se non vado errato l’extension Giix dovrebbe già prevedere qualcosa per la gestione delle Many2Many.

Ciao FSciuti,

grazie mille per la tua risposta intanto.

E’ praticamente lo stesso metodo che io ho implementato,

buono a sapersi che non sono l’unico :D

Grazie,

A presto.