Le basi sono che devi memorizzare i tag come stai mostrando nel primo caso. È utile per verificare se il tag esiste (poiché nel secondo caso per i tag esistenti il tuo db restituirebbe tante righe quante sono le apparenze di tag) e buono per recuperare elementi per tag (selezionare l'ID elemento con un ID tag è meglio che selezionare l'elemento ids da un insieme di tag_id che ha lo stesso significato rappresentativo).
Se ti sei bruciato le dita a causa dell'indicizzazione, dovresti sempre controllare come viene eseguita la query (per mysql è EXPLAIN/DESCRIBE SELECT
).