![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
OOO to wydaje mi się ciekawym rozwiązaniem - muszę to przetestować, bo na potrzeby pytania uprościłem trochę problem (produkty jeszcze łączą się w grupy itd), ale wydaj mi się, że to powinno zadziałać.
Wielkie dzięki. //edit melkorm - akurat produktów bez danej cechy nie będzie, bo wewnątrz kategorii będzie cecha wymagana i nawet jeśli jej nie ma ustawionej, to powstanie rekord null - tak na prawdę ta tabela to będzie cache całego systemu cech, bo będzie też wiele cech niefiltrowalnych itp. Tutaj powstanie taka tabela zawierająca cache tych cech, które można filtrować. 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ę. Ten post edytował athabus 29.10.2012, 15:53:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 22:33 |