Heim  >  Artikel  >  Backend-Entwicklung  >  Wie geht PHP mit alten und neuen Assoziationen um?

Wie geht PHP mit alten und neuen Assoziationen um?

WBOY
WBOYOriginal
2016-12-01 00:25:341683Durchsuche

Zum Beispiel sind A und B eins zu viele, A hat n Datensätze von B und die ID ist (1, 2, 3, 4). Jetzt wird sie als (3, 4, 5, 6) übermittelt ) und A und B müssen aktualisiert werden. Die Beziehung B ist (3, 4, 5, 6). Soll ich zuerst die ursprüngliche Beziehung (1, 2, 3, 4) löschen und dann (3, 4, 5) einfügen? , 6)? Oder nehmen Sie die alten Daten heraus und vergleichen Sie sie vor der Aktualisierung mit den neuen Daten?

Antwortinhalt:

Zum Beispiel sind A und B eins zu viele, A hat n Datensätze von B und die ID ist (1, 2, 3, 4). Jetzt wird sie als (3, 4, 5, 6) übermittelt ) und A und B müssen aktualisiert werden. Die Beziehung B ist (3, 4, 5, 6). Soll ich zuerst die ursprüngliche Beziehung (1, 2, 3, 4) löschen und dann (3, 4, 5) einfügen? , 6)? Oder nehmen Sie die alten Daten heraus und vergleichen Sie sie vor der Aktualisierung mit den neuen Daten?

Wenn kein Index vorhanden ist, verwende ich zuerst delete und dann insert.
Aber im Fall der Indizierung verwende ich zuerst die folgende Methode update und dann insert:

  1. Fügen Sie das Feld is_deleted zur Beziehungstabelle hinzu. Der Standardwert ist 0. is_deleted wird verwendet, um zu markieren, ob die Beziehung beendet ist

  2. Ausführen
  3. (für dieselbe Beziehung existiert nur ein Datensatz)

    SQL

    <code>> `UPDATE table SET is_deleted = 1 WHERE id1=A;`
    > `REPLACE INTO table (id1, id2, is_deleted) VALUES('A',3,0), ('A',4,0);`
    </code>
Der Code der Vergleichsmethode ist komplex, das Hinzufügen von Datenelementen ist eine kleine Katastrophe und schwierig zu warten

Methode 1:

Löschen Sie alles und fügen Sie alles ein, was in Ihrer Frage erwähnt wurde

Methode 2:

Löschen Sie eine einzelne Beziehung und fügen Sie eine einzelne Beziehung hinzu, um eine separate Schnittstelle zu erstellen.

Fügen Sie für jedes Löschen einer Beziehung eine Beziehungsoperation hinzu und rufen Sie die entsprechende separate Schnittstelle auf


Einfach und grob, zuerst löschen und dann einfügen.

Es wird empfohlen, zum Vergleich die alten Daten herauszunehmen.

Zuerst löschen, dann einfügen und gleichzeitig ein Archivfeld hinzufügen, es als Zeichenfolge speichern, dieses Mal mit speziellen Symbolen von der vorherigen Beziehung trennen und anhängen.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn