Als alle tags in verschillende records staan (genormaliseerd), kunt u de tags gemakkelijker hernoemen als dat nodig mocht zijn en de geschiedenis van de tagnaam volgen.
SO , bijvoorbeeld hernoemd tot SQL Server gerelateerde tags minstens driemaal (mssql -> sqlserver -> sql-server ).
Het hebben van alle tags in één record (gedenormaliseerd) betekent dat u deze kolom kunt indexeren met een FULLTEXT indexeer en zoek naar berichten met twee of meer tags tegelijk:
SELECT *
FROM posts
WHERE MATCH(tags) AGAINST('+mma +ufc')
wat ook mogelijk is, maar minder efficiënt met een genormaliseerd ontwerp.
(Vergeet niet om @ft_min_word_len aan te passen om tags van 3 . te indexeren tekens of minder om dit te laten werken)
U kunt beide ontwerpen combineren:sla zowel de kaarttabel als de gedenormaliseerde kolom op. Dit vereist echter meer onderhoud.
U kunt het genormaliseerde ontwerp ook in uw database opslaan en de door u opgegeven zoekopdracht gebruiken om de tags aan Sphinx te geven. of Lucene .
Op deze manier kunt u geschiedenis graven met MySQL , fulltext-tag zoeken met Sphinx , en er is geen extra onderhoud nodig.