Etiketleri ile ilgili maddelerin sayısını görüntülemek için en iyi yolu nedir?

3 Cevap php

Etiketler tablo yapısı ile ilgili this öneri aşağıdaki sonra, aşağıdaki tasarım uyguladık:

Table: Item
Columns: ItemID, Title, Content

Table: Tag
Columns: TagID, Title

Table: ItemTag
Columns: ItemID, TagID

Ben başka bir sorunla karşı karşıya değilim, ben her etiket sisteminde görünen numarasını görüntülemek istiyorum. Ciddi bir performans etkisi (etiketleri her öğe için görünecektir sayılmaz) neden olmaz, arama sorgusu / php kod açısından bunu yapmak için en iyi yolu nedir.

Teşekkürler,

Roy

3 Cevap

select count(*)
from ItemTag
where TagId = X

dinamik olarak alacak mySQL olduğunu.

Eğer performans isabet konusunda endişeli iseniz, size etiket tabloda bir sayı saklamak gerekir, ve etiketlemek veya untag bir öğesi, arttırma / azaltma onu.

Aşağıdaki (SQL) tüm etiket başlıkları ve öğeleri görünme sıklığını ilişkili sayımları alacak eminim.

select tag.title, count(itemtag.tagid) 
from tag, itemtag
where itemtag.tagid = tag.tagid
group by tag.title
SELECT Tag.Title, COUNT(Tag.TagID) AS TagCount
FROM ItemTag
LEFT JOIN Tag ON
(ItemTag.TagID = Tag.TagID)
GROUP BY Tag.Title
ORDER BY Tag.Title

Eğer bir öğenin karşı kullanılan kez sayısına göre takip etiketleri (ni alfabetik sıraya göre) bir listesini verir. Kullanılmayan etiketleri görünmüyor.