2009-03-10 3 views
0

Gibt es eine effiziente Möglichkeit für ein System, Tags für ein Element zu aktualisieren, wenn diese Seite an Seite in einem Textfeld ähnlich StackOverflow dargestellt werden?Ändern von Tags in einer Web-App. Best Practice

In meiner Webanwendung haben einzelne Elemente Tags und ich verwende eine Verknüpfungstabelle zwischen einer Tags-Tabelle und der Elementtabelle, um eine gewisse Normalität zu bewahren.

Datenbankschema hier diskutiert werden: Is there an agreed ideal schema for tagging und hier: How to design a database schema to support tagging with categories?

Bei jeder Änderung des Artikels, es wäre leicht, alle Tags mit dem Elemente zugeordnet zu löschen, dann erneut hinzufügen, um sie zu dem Datenbank abhängig vom Inhalt des Textfelds (durch Leerzeichen getrennte Tags).

Dies könnte jedoch 2/3 Datenbankaufrufe bedeuten, auch wenn der Benutzer keine Änderungen vorgenommen hat.

Ich überlegte auch, keine Änderung von Tags überhaupt zuzulassen. Bei der Bearbeitung könnte ich den Benutzer mit einem kleinen Kreuz an jedem Tag anzeigen, damit sie das Element über einen AJAX-Aufruf löschen können.

Diese Lösung würde den Benutzer jedoch unter Umständen nicht unterstützen, wenn beispielsweise ein Rechtschreibfehler in einem einzelnen Tag geändert wird.

Antwort

0

Ich denke, ich werde eine Funktion haben, die die Tag-Zeichenfolge für die Anzeige auf dem Update-Formular erstellt.

Wenn ich diese Funktion beim Update erneut aufrufen und die Zeichenfolge vergleichen würde, wäre ich zumindest in der Lage herauszufiltern, wo die Tags überhaupt nicht mit einem einzigen db-Aufruf geändert wurden.

Dann, nur wenn die Tags unterschiedlich sind, könnte ich das Update tun.

Könnte ziemlich effizient sein?