2016-05-06 3 views
0

Meine Frage hier ist, was ist die beste Lösung, um einen Benutzerkommentar zu löschen? (Und halten es aus rechtlichen Gründen)Verschieben oder als 1 gelöschte Datensätze festlegen?

wenn er in löschen klickt Ich habe zwei Möglichkeiten:

1) Kopie an einen anderen Tisch: Erstellen Sie eine Tabelle in der Struktur identisch (del_comments), kopieren Sie den Kommentar dort und löschen aus comments.

2) Satz gelöscht wie 1: Update Tabelle Kommentare, Satz gelöscht = 1. also jede Auswahl, die ich hinzufügen muss in: where deleted=0, um nicht gelöschte zu erhalten.

Sollte ich 1 oder 2 verwenden?

Antwort

2

Während ich würde den sichtbaren Unterschied zwischen den beiden unwichtigen Lösung 2 wäre die "wahre" Methode der beiden.

Lösung 1 beinhaltet zwei Modifikationsabfragen, das heißt, eine Zeile in del_comments zu erstellen und dann die Zeile in der Originaltabelle zu löschen, für die Sie MySQL vermutlich leichter durchsuchen könnten. Allerdings könnte man argumentieren: "Warum sollte eine einzige Tabelle voller Kommentare für jeden Thread vorhanden sein, wenn wir nur eine Tabelle mit Kommentaren für jeden einzelnen Thread haben könnten".

Lösung 2 beinhaltet eine einzige Modifikationsabfrage, das heißt, einen Booleschen Wert für eine bestehende Zeile zu ändern, wobei MySQL die deleted Spalte jeder Zeile mit 0 vergleichen muss. Der gesamte Punkt von SQL besteht jedoch darin, Zeilen zu speichern Daten und Spalten von Daten, die für das relevant sind, also würde diese Lösung dem Grund entsprechen, warum Sie eine SQL-Datenbank an erster Stelle verwenden. Sie machen das mit ziemlicher Sicherheit Abfragen, die viel ‚heaver‘ sind, die einfach für die Zeilen überprüft, wo deleted 0.

ist, würde ich diese Lösung 1 argumentieren wäre weniger Speicher und platzsparend, aber das ist rein anekdotisch, aber ich kann sagen, Sie für eine Tatsache, dass es viel einfacher und viel einfacher für die Datenbankstruktur ist, Lösung 2 zu verwenden.

+0

oh, vielen Dank für diese Antwort, Freund! es ist erstaunlich! –

+1

Stellen Sie sich auch eine Situation vor, in der Sie sowohl gelöschte als auch nicht gelöschte Kommentare anzeigen müssten. Mit Lösung 1 müssten Sie aus _both_ Tabellen in _separate_ Instanzen lesen, die die Reihenfolge der Kommentare verschlechtern würden. – Shaw

Verwandte Themen