Lo básico es que necesita almacenar etiquetas como las que muestra en el primer caso. Es bueno para verificar si existe una etiqueta (ya que en el segundo caso para las etiquetas existentes, su base de datos devolvería tantas filas como apariciones de etiqueta) y bueno para recuperar elementos por etiqueta (seleccione la identificación del elemento por una identificación de etiqueta es mejor que seleccionar el elemento ids por un conjunto de tag_id que tiene el mismo significado de representación).
Si se quemó los dedos debido a la indexación, siempre debe verificar cómo se ejecuta la consulta (para mysql es EXPLAIN/DESCRIBE SELECT
).