MANY - MANY - MANY Beziehung

Hi,

ich versuche eine MANY-MANY-MANY Beziehung herzustellen. Ich weiß wo mein Fehler liegt, jedoch weiß ich nicht wie ich ihn beheben soll.

317

yii_many_many_many2.PNG

apple - Model




public function relations()

{

	return array(

		'apple'	=> array(self::MANY_MANY, 'juice', 'apple_juice(apple_Id, juice_Id)',

			'together'	=> true,

			'joinType'	=> 'INNER JOIN',

		),

		'juice'	=> array(self::MANY_MANY, 'Buyer', 'juice_buyer(juice_Id, buyer_Id)',

			'together'	=> true,

			'joinType'	=> 'INNER JOIN',

		),

	);

}

Apple -> Juice -> Buyer - Aufruf


public function appleJuiceBuyer( $baseform ){

	return apple::model()->with(array('apple', 'juice'))->find('apple.baseform=?', array( $baseform ) );

}

Mein zubehebender Fehler

Ich vermute das mein Fehler darin liegt, dass ich in der Relationstabelle mit "juice" eine MANY-MANY Beziehung Apple <-> Buyer herstelle und nicht Apple -> Juice -> Buyer

Für eine Hilfe bin ich schon jetzt sehr dankbar.!!!

Ich hab mir jetzt nur mal das Diagramm angesehen und nicht den Code und verstehe nur Bahnhof…

Also ein Apfel kann in beliebig vielen sagen wir mal Flaschen (oder welche Einheit auch immer) vorkommen. Eine Flasche enthält beliebig viele Äpfel. <- Das ist bis jetzt noch theoretisch möglich, wenn auch irgendwie seltsam.

Eine Flasche kann von beliebig vielen Käufern gekauft werden und ein Käufer kann beliebig viele Flaschen kaufen. <- Der erste Punkt ist auch sehr seltsam.

Vielleicht erläuterst du ein wenig, was du überhaupt vor hast?!

Das Diagramm hat keine Bedeutung, ich habe einfach was genommen was mir im Kopf war.

Ich versuche eine MANY-MANY-MANY Beziehung zu erstellen.

Na dann sag das doch auch! Das hat mich jetzt wieder mindestens eine Tasse Kaffee gekostet! ???

Ok, also fangen wir mal vorne an.

Das Model apple hat wohl keine Relation die apple heißt, es sein denn, es besteht eine Relation zu sich selbst. Aber das ist auch nicht so wichtig.

  1. apple hat eine Many-Many-Relation zu juice. Das war es. Ende aus.

  2. juice hat eine Many-Many-Relation zu apple und zu buyer. Ist der Coolste von allen.

  3. buyer hat eine Many-Many-Relation zu juice, nicht aber zu dem blöden Apfel.

Das Ganze nun in einem Rutsch abzufragen wird wohl etwas tricky.

Von der Seite des Apfels aus betrachtet: 1 Apfel kommt in 17 Flaschen saft vor, easy: $myApple->juice liefert mir nun 17 records. Aber wenn ich jetzt auch noch die Käufer meines Apfels kennen möchte, heißt das, dass ich für jede der 17 Flaschen nochmals zwischen 0 und 1736436475832 (oder so ^^) Käufer haben kann.

In SQL hätte ich schon 'ne Idee, aber so…

Um ehrlich zu sein habe ich gerade auch nicht die Muße mir Beispieltabellen und eine Anwendung zu stricken, um das mal mit Yii zu evaluieren. Wenn du mir sowas machst und zur Verfügung stellst, werde ich es ausprobieren.

Die wichtigste Frage ist aber noch: was willst du am Ende überhaupt rauskriegen bei dieser Abfrage? Quasi alle Käufer mit der jeweiligen Flasche und dem einen Apfel, der sich darauf verteilt (im übertragenen Sinne)?

ich werde das morgen mal zusammen stricken, komplett mit SQL-STATEMENT und den Models und den Controller und dir zuschicken. thx schon mal!