Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Projekt tabel(i) cache dla sklepu, cechy produktów
athabus
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam,

chciałbym w sklepie internetowym wprowadzić nawigację po cechach, która jest obecnie stosowana w wielu sklepach np. cyfrowe.pl rtveuroagd itp.

W skrócie chodzi mi o coś takiego, że klient po wejściu w kategorię produktów typu telewizory może za pomocą filtrów wyszukać te np. o przekątnej 15" i cenie od 2 do 3000 itd.

Macie wiedzę/pomysł jak to zrobić optymalnie?

Na wstępie myślałem o takiej tabeli:

(FK)id_produktu | (FK)id_cechy | wartość cechy

Problem jaki napotykam, to jak wyciągnąć z tej tabeli produkty spełniające np. 3 warunki (dla każdego produktu będzie tyle rekordów ile jest przypisanych do niego cech - w sumie nawet więcej bo niektóre cechy są wielokrotnego wyboru). Czy np. jeśli klient sobie zażyczy telewizor zdefiniowany cechami 32", czarny, Sony, do 5000zł to należy wykonać odpowiednio 4 zapytania - najpierw poszukać wszystkie telewizory 32" z nich wszystkie czarne, z nich te marki Sony itd? Czy może taki problem da się rozwiązać jakoś w miarę elegancko?

Niby problem banalny, ale mam jakieś zaćmienie i nie mogę wymyślić jak to rozwiązać lepiej niż to co opisałem wyżej.

Pozdrawiam i dzięki za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Na szybko jak sobie to układam, to nospor ma chyba rację poniżej, ale coś wolno kojarzę dzisiaj, więc sobie to na spokojnie w wolnej chwili przetestuję.
@Athabus rozwiązanie, które ci podałem stosowałem wielokrotnie i zawsze działało (IMG:style_emoticons/default/wink.gif) A stosowałem je dokładnie w tym samym celu co ty i z dokładnie takim samym rozwiązaniem cech dla produktów.

@melkorm nie można tu użyć tylko jednego JOINA na cechy, gdyż każda cecha to oddzielny rekord w tabeli. Nie możesz więc zrobić jedngo JOIN a potem zwykły AND na każdą cechę, gdyż taki warunek nigdy nie będzie spełniony. Jeden rekord nie może być jednoczenie =4 i =8 i =2 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 12:03