io ho seguito questa via:
il campo counter viene incrementato di 1 ogni volta che viene usato un tag.codice:tabella tags: | id | tag | counter | tabella doc_has_tag |id_doc | id_tag |
Ovviamente per fare questo ogni volta che viene usato un tag devi controllare che questo esista in db, se esiste incrementi solo il campo counter interessato, se invece non esiste fai un insert con counter = 1.
Poi la tabella doc_has_tag conterrà le coppie id_doc->tag.
ciao