Hola:
Parece que llego tarde, pero hace poco implementé para mi página un sistema de etiquetas con su nube de tags, y básicamente uso una sola tabla con el nombre como primary key (o tal vez índice) y otro campo con la lista de id's asociados (separados por comas), así para la nube, el tamaño del texto se calcula fácilmente, y cuando quiera resaltarse en la noticia, simplemente se convierte la lista en array y se usa in_array()...
La explicación y la página:
Este diario: Las etiquetas.
Saludos