At have alle tags i forskellige poster (normaliseret) betyder, at du lettere kan omdøbe taggene, hvis behovet skulle opstå, og spore tagnavnehistorikken.
SO , for eksempel omdøbt SQL Server relaterede tags mindst tre gange (mssql -> sqlserver -> sql-server ).
At have alle tags i én post (denormaliseret) betyder, at du kan indeksere denne kolonne med en FULLTEXT indekser og søg efter indlæg med to eller flere tags på én gang:
SELECT *
FROM posts
WHERE MATCH(tags) AGAINST('+mma +ufc')
hvilket også er muligt, men mindre effektivt med normaliseret design.
(Glem ikke at justere @ft_min_word_len for at indeksere tags af 3 tegn eller færre for at dette virker)
Du kan kombinere begge designs:gem både korttabellen og den denormaliserede kolonne. Dette vil dog kræve mere vedligeholdelse.
Du kan også gemme det normaliserede design i din database og bruge den forespørgsel, du har angivet, til at sende taggene til Sphinx eller Lucene .
På denne måde kan du grave historie med MySQL , fuldtekst-tag-søgninger ved hjælp af Sphinx , og der kræves ingen ekstra vedligeholdelse.