wmaraci reklam

Sql tablo veya sorgulama sorunu

3 Mesajlar 644 Okunma
pst.net
wmaraci reklam

codeksper codeksper WM Aracı Kullanıcı
  • Üyelik 20.12.2015
  • Yaş/Cinsiyet 42 / E
  • Meslek Web Yazılım Geliştirme
  • Konum İzmir
  • Ad Soyad H** Ç**
  • Mesajlar 22
  • Beğeniler 3 / 4
  • Ticaret 0, (%0)
Merhaba arkadaşlar mysqlde iki tablo arasında ilişki kurmakta mantık sorunu yaşıyorum.

CATEGORY:
category_id, title

PRODUCT:
product_id, name

Product ve kategorileri bir ürünün birçok kategori altına eklenebileceği şekilde ilişkilendirmem gerekiyor ama öyle bi ilişkilendirme yapmalıyım ki şöyle bi sorgu yapabileyim.

(kategori id'si 5 veya 6 olan) ve (kategori id'si 4 olan) ve (kategori id'si 83 veya 84 olan) ürünleri göstermek istiyorum.

SELECT * FROM XXX ( (cat_id=5 OR cat_id=6) AND (cat_id=4) AND (cat_id=83 OR cat_id=84))

Bu sorguyu istediğim sonucu daha iyi anlatabilmek adına yazıverdim. tüm kategoriler tek id şeklinde cat_id sütununda olamayacaktır tabi ama istediğim sonuç budur.

Mümkün müdür? Tablo yapısı nasıl olmalıdır?
 

 

wmaraci
reklam

ERENKYI ERENKYI WM Aracı Kullanıcı
  • Üyelik 11.07.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad E** K**
  • Mesajlar 169
  • Beğeniler 8 / 45
  • Ticaret 1, (%100)
PRODUCT tablosuna categories diye bir varchar ekleyin. Buraya JSON şeklinde kategorileri yazın ve PHP kodunda da JSON'ı array'a çevirin. Sorguya da kategorileri array'ı foreach'de döndürerek cat_id=$current_array_key şeklinde ekleyin.
 

 

codeksper codeksper WM Aracı Kullanıcı
  • Üyelik 20.12.2015
  • Yaş/Cinsiyet 42 / E
  • Meslek Web Yazılım Geliştirme
  • Konum İzmir
  • Ad Soyad H** Ç**
  • Mesajlar 22
  • Beğeniler 3 / 4
  • Ticaret 0, (%0)
Hocam cevabını tam olarak anlamadım ama ürünle ilişiklendireceğim tüm kategori idlerini tek sütunda herhangi bi şekilde toplarsam sadece anca like'lı sorgular yaparak sonuca ulaşabilirim ki bu da performansı çok düşürür.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al