Wicepsik... Ja mieszam w swoich tabelach i specjalnie je denormalizuję w celu przyspieszenia szukania lub łączę kilka rozwiązań. Przykład? Mam w tabeli artykułów kolumnę tagi i jednocześnie wiele do wielu standardowe, czyli z tabelą złączeniową. Czemu? Bo dla chmury tagów to drugie rozwiązanie jest idealne, ale gdy robię zwykłego searcha by wyszukać artykuły, które mają jakieś słowa kluczowe to lepiej mi założyć fulltext na kolumny tytuł, treść, tagi i co tam jeszcze chcę, by potem na tym operować. A jak ja miałbym to zrobić na relacji wiele do wielu gdzie mam dostępne tylko tagi, nie mam już zaś treści artykułu? Łączyć wszystko i potem jeszcze robić GROUP_CONCAT? Przecież zarżynam wtedy bazę

Czasem denormalizacja to sensowne rozwiązanie pod kątem optymalizacji. Tracę trochę miejsca w samej bazie na owe tagi jako zwykły tekst, ale za to zyskuję przy wydajności. Takie rozwiązania mieszane to czasem dobre rozwiązanie na przyszłość.
Niech więc zrobi tak, że kolumna tag sobie jest, ale niech jeszcze do tego dopisze
dodatkowo tabele do relacji "wiele do wielu"

W ten sposób wilk będzie syty i owca cała. Poza tym nie będzie musiał wcale przebudowywać tabel. Doda co trzeba, odpali skrypt, który przeleci przez bazę i uzupełni co trzeba