I've built a news site: - The articles are shown on the front page ordered by date. The newest one first. - The news are in the table "news" with the fields "id", "title", "text" and some other ones. - All articles are tagged with 1-5 relevant tags. - The tags are in the table "tags" with the fields "id", "tag", "article" and some other ones. - The field "article" of "tags" fits to the field "id" of "news".
Şimdi kullanıcının kendi "tercih etiketleri listesine" etiketler eklemek için fırsat vermek istiyorum. Sonra kullanıcı sadece tercih etiketlerden birini içeren haberler, makaleler görmelisiniz.
Kullanıcı Bob "obama", "nba", "new jersey" ve "köpekler" etiketleri tercih etti varsayarsak. O sadece bu dört etiketleri en az birini içeren makaleler görmelisiniz.
Bunu nasıl elde bir PHP / MySQL komut dosyası kod olabilir? Benim veritabanı yapısı, bu amaç için yeterli değildir bu olduğunu düşünüyorum? Ben böyle DB sorguları yapmak zorunda kalacak:
"Haber WHERE id IN (etiketleri GELEN SELECT makale WHERE ('obama', 'nba', 'new jersey', 'köpek') IN tag)" SELECT *
Bu sorgu, öyle değil mi, uzun süre koşmak istiyorsunuz? Benimkinden daha uygun bir veritabanı yapısı olmalıdır. Bu sorun için bir fikriniz var mı? Hangi DB yapısı ihtiyacım var ve ben sonra ne sorgu kullanmanız gerekir?
Bana yardımcı olur umarım. Şimdiden teşekkürler!