v2.5.2
Giriş yap

Laravel Ecommerce sitesi - Ürün filtreleme mantığı

Anonim
489 defa görüntülendi

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

Cevap yaz
Cevaplar (3)
munzevi
719 gün önce

soruyu anladım ama, gruplandırma olayını anlamadım. bir örnek göstererek detaylandırırsan cevap verebilirim.

ibrahimali
719 gün önce

@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?

munzevi
719 gün önce

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 : )