Vinzenz Mai: Relationale Datenbank

Beitrag lesen

Hallo

Schön wäre es doch, wenn es z.B. einen eigenen Befehl gäbe, der das erledigt. Zumindestens die Abgleichung der Relationen beim update. Jetzt benötige ich vier Abfragen und eine menge an PHP-Code.

ich verstehe Dich nicht.
Du benötigst doch nur eine PHP-Funktion:

function aktualisiere_adress_gruppen_zuordnung ( array zuordnung_neu, array zuordnung_alt)

Du solltest bereits in einer PHP-Variablen haben:
a) alte Gruppenzuordnung
   aus der Anzeige beim Formular
   (könntest Du z.B. in einer Session speichern)
b) neue Gruppenzuordnung
   aus der Formularübermittlung

Das heißt, dass Du für die Ermittlung der zu löschenden Gruppenzuordnungen und die Ermittlung der einzufügenden Zuordnungen _kein einziges_ SQL-Statement abschicken musst. Im Anschluß kommt genau ein DELETE-Statement und genau ein INSERT-Statement. D.h. Deine Funktion benötigt genau zwei SQL-Statements, um die Du sowieso nicht herumkommst:

Du musst (ggf.) löschen:  DELETE
Du musst (ggf.) einfügen: INSERT

Auch wenn die Aktualisierung an der DB übertragen würde, Stichwort Stored Procedures (SP), MySQL 5.x, was Dir soweit ich mich erinnere noch nicht zur Verfügung steht, wären innerhalb der SP diese beiden Operationen durchzuführen. Es entfällt etwas Verbindungsoverhead.

Weiterhin solltest Du berücksichtigen, wie oft solche Operationen vorkommen. Ich gehe nicht davon aus, dass sich die Gruppenzuordnungen häufig wechseln. Nachdem sie einmal ordentlich zugewiesen sind, wird es gelegentliche Änderungen geben.

Freundliche Grüße

Vinzenz