Ich habe eine vorhandene Webanwendung und möchte ein Tag-Feature hinzufügen, damit Benutzer vorhandene Objekte kennzeichnen können. Die Frage ist, sollte ich eine Tag-Spalte zu jedem Objekt hinzufügen? oder sollte ich es normalisieren und eine Tag-Tabelle verwenden, wo jedes Objekt eine Sammlung von Tags hat? Ich lehne mich dem Letzteren an, weil es sich sauberer anfühlt, leichter zu berichten und leichter eine Tag Cloud zu erstellen. Aber da ich weiß, dass das 1000 Mal gelöst wurde, wollte ich fragen und sehen, ob mir etwas fehlt.Wie werden Tags in der Datenbank modelliert?
9
A
Antwort
6
Erwarten Sie, dass Benutzer mehr als ein Tag mit einem Objekt verknüpfen müssen?
Wenn nicht ist, fügen Sie die TAG_ID fk zur OBJEKT-Tabelle hinzu. Andernfalls würden Sie drei Tabellen insgesamt müssen richtig ein modellieren many-to-many-Beziehung:
OBJECT
- OBJECT_ID (pk)
OBJECT_TAG_XREF
- OBJECT_ID (pk, fk zu OBJECT)
- TAG_ID (pk, fk zu TAG)
TAG
- TAG_ID (pk)
4
Ja, Sie sollten es normalisieren. Die 'Tag-Spalte' wird entweder nur ein Tag pro Datensatz unterstützen oder eine schreckliche Suchleistung haben.
2
Definitiv normalisieren. Eine Tabelle für Tags, eine Tabelle für Ihre vorhandenen Objekte und eine Tabelle mit Links zwischen ihnen.
Verwandte Themen
- 1. Wie modelliert Open/Closed Status in einer Datenbank?
- 2. Wie können wiederkehrende Aufgaben in Schienen modelliert und gespeichert werden?
- 3. Kann diese Beziehung in RDBMS modelliert werden?
- 4. Wie man Abstraktion in SQL modelliert?
- 5. Sollen Lookup-Werte als Aggregatwurzeln modelliert werden?
- 6. Wie modelliert man diese [Netzwerke, Details in Post] in der Datenbank für Effizienz und Benutzerfreundlichkeit?
- 7. Wie kann man Tags (Schlüsselwörter) in der Datenbank speichern?
- 8. Wie modelliert man rekursive Funktionstypen?
- 9. Wie werden Wertobjekte in der Datenbank gespeichert?
- 10. Wie modelliert man Entitätsbeziehungen in GAEJ?
- 11. Wie kann Nicht-Determinismus mit einer List-Monade modelliert werden?
- 12. Wie modelliert man Bäume in Spark?
- 13. Wie man Facebook Posts in Cassandra modelliert
- 14. Wie werden HTML-Tags in HtmlControl konvertiert?
- 15. Wie werden die Tags angezeigt?
- 16. Wie werden Kommentare in Style-Tags verwendet?
- 17. Wie kann ich Tags aus der TFS-Datenbank abfragen?
- 18. Löschen der neuesten Wordpress-Tags aus der Datenbank
- 19. CQRS - wie man ein Szenario-Ausführungssystem modelliert
- 20. Wie man HTML - Formulardaten zu Django modelliert
- 21. Der beste Weg, um Tags in einer Datenbank zu speichern?
- 22. Wie modelliert man die Ausführungszeit von Algorithmen?
- 23. Wie man einen Freund - Freundschaftsbeziehung in Grails modelliert
- 24. Daten von der Serviceeinheit werden nicht in View-Elemente modelliert AngularJS
- 25. Ruby - HTML-Tags werden nicht in Formatierungs-Tags konvertiert
- 26. Wie modelliert man eine Viele-zu-Viele-Beziehung?
- 27. Wie man mehrere "Verwendungen" (zB Waffe) für verwertbares Inventar/Objekt/Objekte (zB Katana) in einer relationalen Datenbank modelliert
- 28. Wie modelliert vorzeichenbehaftete Ganzzahl mit BitVector?
- 29. Wie werden ER modellierte Subtypen in der Datenbank implementiert?
- 30. Wie werden Daten in der Datenbank für JSON gespeichert?
Wie diese Änderung Tags Benutzer binden würde? Würde OBJECT_ID zu USER_ID werden? –
@JuniperAsh: Sie müssten 'OBJECT_TAG_XREF' eine' user_id'-Spalte hinzufügen - genauso wie die anderen beiden Spalten, Primärschlüssel und Fremdschlüssel für die Benutzertabelle. –
Macht viel mehr Sinn! Vielen Dank! –