Laravel Ecommerce sitesi - Ürün filtreleme mantığı
Merhaba Arkadaşlar
Projelerimi hep laravel ile yazarım, fakat hep ürün filtreleme konusunda sıkıntı çekiyorum.
Bu defa product
ları 2 table olarak ayırdım
1-ci table (products
) da ürünün esas göstericileri (name, category, brand, image, images ve s.)
2-ci table (productdetails
) da ürünün teknik göstericileri (cpu_gen, cpu_speed ve s.)
Şimdi ben shop sayfasında ürünü ilk önce kateqoriye göre getiricem. Daha sonra ürünleri teknik göstericilerine göre nasıl filtreleye bilirim?
Ayrıca böyle yapmak mantıklı mı? mantıkli degilse en iyi filtreleme mantığı nasıl?
Azerbaycanlı olduğum için kendimi ifade edemeye, türkçemde sıkıntı ola bilir, şimdiden özür dilerim.
Önceden teşekkürler
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
@munzevi Çok iyi, anladım. Bir tek sorum var peki tüm ürünlerin ortak datalarını alıp nasıl filtreleme tablosundakı kısımlara yaza biliriz?
Mesala Çekdigimiz verilerde cpu_speed, cpu_gen, cpu_core gibi tablolar var ama bu degerler farklı. Bunları qruplayıp nasıl filtreleme tablosuna yaza biliriz?
merhaba,
yeterince net kendini ifade etmişsin, soru da aslında güzel bir soru. filtreleme... başta kafa karıştırıcı bir olay gibi gelebilir, en basit yöntemiyle aldığın veriyle bazı php koşulları yazarsın, sonra dersin ki ben bunu veritabanında yapayım. bu sefer sunucuda sql koşulları çalıştırırsın, ama ne gerek var?
Ayrıca böyle yapmak mantıklı mı? mantıkli degilse en iyi filtreleme mantığı nasıl?
odaklanman gereken nokta bu, mantıklı mı, değilse alternatif en iyi yöntem nedir?
öncelikle filtreleme için sunucuda alternatif komutlar oluşturmak, zaten daha önceden aldığın bir veriyi tekrar tekrar farklı şekillerde işleyeceğin için performans, maliyet ve kullanılabilirlik açısından uygun değil. elinde zaten mevcutta bir veri olduğu için bu noktada tekrar sunucuya başvurmak yerine yenilenen veriler oluşturmak yerine, mevcut veriyi kullanmalıyız. peki bu nu nasıl yapabilirsin, tabi ki javascript ile.
<div clas="urun">
<div class="info">
<!-- çeşitli ürün bilgileri -->
</div>
</div>
elimizde buna benzer bir ürün bloğu olduğunu varsayalım, bu tarz bir senaryoda sıralama için sunucu tarafından yanıtın böyle verilmesi gerekir. peki ya ürün için gereken bilgileri küçük nitelikler halinde yapı içerisine koysak?
<div clas="urun" data-renk="0" data-stok="22" data-urunkodu="LA241">
<div class="info">
<!-- artık burada ürün bilgileri olmasına gerek yok -->
</div>
</div>
şimdi geriye ne kalıyor? renge göre mi sıralayacağız ya da sadece belirli renge göre mi ürünleri göstereceğiz? eşleşen niteliklerin tümünü bir dizi olarak seçeriz ve ister yeniden sıralarız, ister gizler, ister gösteririz. bu kadar : )