Наличието на всички маркери в различни записи (нормализирани) означава, че ще можете да преименувате етикетите по-лесно, ако възникне необходимост, и да проследявате историята на имената на маркера.
SO , например, преименуван на SQL Server свързани маркери поне три пъти (mssql -> sqlserver -> sql-server ).
Наличието на всички тагове в един запис (денормализиран) означава, че можете да индексирате тази колона с FULLTEXT индексирайте и търсете публикации с два или повече маркера наведнъж:
SELECT *
FROM posts
WHERE MATCH(tags) AGAINST('+mma +ufc')
което също е възможно, но по-малко ефективно с нормализиран дизайн.
(Не забравяйте да коригирате @ft_min_word_len за индексиране на тагове на 3 символи или по-малко, за да работи това)
Можете да комбинирате и двата дизайна:съхранявайте както таблицата на картата, така и денормализираната колона. Това обаче ще изисква повече поддръжка.
Можете също така да съхраните нормализирания дизайн във вашата база данни и да използвате заявката, която сте предоставили, за да подадете етикетите на Sphinx или Lucene .
По този начин можете да копаете история с MySQL , пълнотекстови маркери за търсене с помощта на Sphinx , и няма да е необходима допълнителна поддръжка.