lambri adlı üyeden alıntı: mesajı görüntüle
"Tam sorulan bu değilmiş sonradan farkettim ama yine de o kadar yazdım dursun"

Wordpressdeki gibi etiketlere tıklandığında o etiketlere sahip yazıları görmek istiyorsun..
Bunun için yapacağın şey şu:
3 adet tabloya ihtiyacın var..
Yazilar tablosu:
yazi_id: integer
baslik : varchar
icerik : text
---
etiketler tablosu
etiket_id: integer
etiket: varchar(255)
---
yazi_etiket tablosu:
yazi_id
etiket_id
------>
Şimdi farzedelim bir yazı ekleyeceksin
yazi_id=1 --- baslik= "İlk yazi" --- icerik=" Doldu taşıyor yazılar" (etiketler: makale,kitap)
Şimdi etiketleri oluşturacağız.
etiket tablosuna
etiket_id=1 --- etiket="makale"
etiket_id=2 --- etiket="kitap"
diye iki tane girdi oluşturdun.. (önceden olup olmadıklarını kontrol et)
Sonra yazi_etiket tablosuna:
yazi_id=1 --- etiket_id=1
yazi_id=1 --- etiket_id=2
diye satırlar eklemen lazım..
Artık yazıların etiketlendi.
Şimdi farzedelim yazi_id=1 olan yazının etiketlerini görmek istiyorsun.
Select etiketler.etiket from yazi_etiket, etiketler where yazi_etiket.yazi_id=1;
Bunların hepsini yapabilmen için veritabanı tasarımı konusunda bilgi sahibi olmasın. Foreign key vs nedir bilmelisin.
Tabi ki tag sisteminin kendi ayrıntıları olabilir. Ben basit bir örnek ve tasarım yaptım.
Konuyla ilgili etiketleri de söyleyeyim :
ForeignKey, Many to Many Relationship
Verdiğiniz örnek güzel teşekkürler. Ancak yazi_etiket diye ayrı bir tablo açmak yerine
etiketler tablosunda bir alan daha açıp etiketin hangi yazilara verildiği eklense daha iyi olmaz mı?
Yani etiketler tablosunda bir alan daha olsun. -yazi diye mesela - Ve bu alana o etiketi alan yazıların id leri kaydedilsin. 1,4,56,12 gibi...
Hem bu sayede arama işlemi de kolaylaşmış olur ve veritabanında daha az yer kaplanmış olur. Mesela oyun etiketli yazıları bulmak için:
SELECT * FROM etiketler_tablosu WHERE etiket=oyun
deyiveririz olur biter.
Yanlışım varsa belirtiniz. İyi çalışmalar...