Frage

Ich habe eine bestehende Webapp und will einen Tag Feature hinzuzufügen, so dass Benutzer vorhandene Objekte markieren können. Die Frage ist, soll ich einen Tag Spalt zu jedem Objekt hinzufügen? oder soll ich es normalisieren und eine Tag-Tabelle verwenden, in denen jedes Objekt wird eine Sammlung von Tags haben? Ich stütze mich auf die letztere, weil es sauberer fühlt, einfacher zu Bericht und einfacher, einen Tag-Cloud zu erstellen. Aber da ich weiß, das war gelöst 1000mal Ich wollte fragen, und sehen, ob ich etwas fehlt?

War es hilfreich?

Lösung

Haben Sie Benutzer voraussehen, um mehr als einen Tag mit einem Objekt zu verknüpfen?

Wenn nicht , fügen Sie den TAG_ID fk zu dem Objekttisch. Andernfalls müssen Sie drei Tabellen insgesamt korrekt eine many-to-many-Beziehung Modell:

OBJECT

  • OBJECT_ID (pk)

OBJECT_TAG_XREF

  • OBJECT_ID (pk, fk OBJECT)
  • TAG_ID (pk, fk TAG)

TAG

  • TAG_ID (pk)

Andere Tipps

Ja, Sie sollten es normalisieren. Die ‚Tag Spalte‘ entweder wird nur ein Tag pro Datensatz zu unterstützen, oder wird scheußlich Suchleistung haben.

Auf jeden Fall normalisieren. Eine Tabelle für Tags, eine Tabelle für Ihre vorhandenen Objekte und eine Tabelle von Verbindungen zwischen ihnen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top