Основното е, че трябва да съхранявате тагове, както показвате в първия случай. Добре е да проверите дали маркерът съществува (тъй като във втория случай за съществуващи тагове вашият db ще върне толкова редове, колкото има тези изяви на маркер) и е добър за извличане на елементи по етикет (изберете идентификатор на елемент по идентификатор на един маркер е по-добре, отколкото да изберете елемент идентификатори от набор от tag_id, който има същото представително значение).
Ако сте изгорили пръстите си поради индексиране - винаги трябва да проверявате как се изпълнява заявката (за mysql това е EXPLAIN/DESCRIBE SELECT
).