Domanda

Ho una webapp esistente e voglio aggiungere una funzione di tag in modo che gli utenti possano etichettare gli oggetti esistenti. La domanda è: dovrei aggiungere una colonna tag a ciascun oggetto? o dovrei normalizzare e utilizzare una tabella delle variabili in cui ogni oggetto avrà un insieme di tag? Sono appoggiato verso il secondo perché ci si sente più pulita, più facile da riferire in merito e più facile per creare una tag cloud. Ma dal momento che so che questo è stato risolto 1000 volte avrei voluto chiedere e vedere se mi manca qualcosa?

È stato utile?

Soluzione

Ti Prevede utenti che necessitano di associare più di un tag con un oggetto?

Se non , aggiungere il fk TAG_ID al tavolo OGGETTO. In caso contrario, avreste bisogno di tre tavoli in totale per modellare correttamente una relazione molti-a-molti:

oggetto

  • OBJECT_ID (pk)

OBJECT_TAG_XREF

  • OBJECT_ID (pk, fk a oggetto)
  • TAG_ID (pk, fk a TAG)

tag

  • TAG_ID (pk)

Altri suggerimenti

Sì, si dovrebbe normalizzare esso. La 'colonna tag' è o sta per supportare solo un tag per ogni record, o sta per avere orrenda prestazioni di ricerca.

Sicuramente normalizzare. Un tavolo per i tag, un tavolo per gli oggetti esistenti, e un tavolo di legami tra loro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top