Điều cơ bản là bạn cần lưu trữ các thẻ giống như bạn đang hiển thị trong trường hợp đầu tiên. Nó rất tốt để kiểm tra xem thẻ có tồn tại hay không (vì trong trường hợp thứ hai đối với các thẻ hiện có, db của bạn sẽ trả về bao nhiêu hàng khi có những sự xuất hiện của thẻ đó) và tốt để truy xuất các mục theo thẻ (chọn id mặt hàng theo một id thẻ tốt hơn là chọn mặt hàng id bởi một tập hợp tag_id có cùng ý nghĩa đại diện).
Nếu bạn bị bỏng ngón tay vì lập chỉ mục - bạn nên luôn kiểm tra xem truy vấn đang được thực thi như thế nào (đối với mysql, đó là EXPLAIN/DESCRIBE SELECT
).