Ben olsaydım şöyle yapardım;
contents (id, title) - Konular tablom
tags (id, slug, title) - Etiketler tablom
tag_relation (id, tag_id, content_id) Konuları ve etiketleri birbirine bağlayan tablom.
Konu oluştururken, "elma, armut, kiraz" bunları ayrı satırlar olarak "tags" tablosuna eklerim.
Bu esnada, tag_relation tablosunuda konu_id ve bu oluşan etiket_id leri insert ederim.
Daha sonra diyelim /etiket/kiraz
Etiketi almak için;
$query = $db->query("SELECT * FROM tags WHERE slug = 'kiraz';");
$tag = $query->fetch_object();
Etikete ait konuları almak için;
$query = $db->query("SELECT t1.id, t2.title FROM tag_relation AS t1 LEFT JOIN contents AS t2 ON t2.id = t1.content_id WHERE t1.tag_id = " . $tag->id);
Bu sorguda LEFT JOIN yaparak konular tablosuna ve ilişkili konuları rahatlıkla listeyebilirsiniz.