Doctrine 2 Association Mapping Overhead?
Assoziationskartierung in Lehre 2
<?php
class User
{
//...
/**
* @ManyToMany(targetEntity="Group")
* @JoinTable(name="User_Group",
* joinColumns={@JoinColumn(name="User_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="Group_id", referencedColumnName="id")}
* )
*/
private $groups;
//...
}
Unter der Annahme, dass in diesem Beispiel $ groups im Konstruktor als ArrayCollection () initialisiert wurde, werden im Test alle dem Benutzer zugeordneten Gruppen zurückgegeben.
Ein Programmierer in meinem Entwicklerteam brachte einen guten Punkt zu diesem Szenario vor. Es werden alle Gruppen geladen, die einer Benutzerentität zugeordnet sind. Möglicherweise benötigen wir nicht alle.
Nehmen wir an, wir möchten bei DQL-Join-Anweisungen die Favoritengruppen auswählen, die durch DQL-Joins erreichbar sind. Wir verbinden Benutzer, Gruppen und Favoriten. Fragt Doctrine erneut alle Gruppen ab? Dies ist der Aufwand, auf den ich hinweisen möchte. Es gibt bereits eine Array-Sammlung aller Gruppen.
Wie steuern wir das Ergebnis der Assoziationszuordnung? Oder können wir, wenn wir Assoziationszuordnungen entfernen, weiterhin DQL verwenden, um Entitäten zu verbinden, für die keine Assoziationszuordnungen eingerichtet wurden? ODER verwendet Doctrine tatsächlich die Daten aus der Zuordnungszuordnung in DQL?