-
Ü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?
-
Ü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.
-
Ü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.