Melhor maneira de armazenar um relacionamento muitos-para-muitos no MySQL?
Digamos que eu tenha um banco de dados simples com tabelas 'posts' e 'tags'. As postagens podem ter muitas tags e as tags podem pertencer a muitas postagens.
Qual é a melhor maneira de estruturar o banco de dados? Pensei em usar uma lista / serializar:
tags
idx tag_id, str tag_name
posts
idx post_id, str title, list tag_ids
OU tendo outra tabela com as associações. O problema é usar isso. Nem sei como estruturar a consulta para puxar os nomes de tags associados quando recebo uma postagem.
posts
idx post_id, str title
post_tags
fk post_id, fk tag_id
Na verdade, eu não gosto de nenhum deles. Existe uma maneira melhor?