Como implementar o sistema de tags

Eu queria saber qual é a melhor maneira de implementar um sistema de tags, como o usado no SO. Eu estava pensando nisso, mas não consigo encontrar uma boa solução escalável.

Eu estava pensando em ter uma solução básica de 3 mesas: ter umtags mesa, umarticles mesas e umtag_to_articles mesa.

Essa é a melhor solução para esse problema ou existem alternativas? Usando este método, a tabela ficaria extremamente grande no tempo, e para pesquisar isso não é muito eficiente, eu suponho. Por outro lado, não é tão importante que a consulta seja executada rapidamente.

questionAnswers(7)

yourAnswerToTheQuestion