Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> przechowywanie wyników wyszukiwania
zzeus
post 20.07.2010, 08:15:40
Post #1





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Witam,
trafiłem na następujący problem. Powiedzmy że mamy wyszukiwarkę produktów która może zwrócić około 6 tys. pozycji. Produkty prezentowane są po 15 na jednej stronie. Po wejściu do szczegółów danego produktu, chcemy mieć nawigację do kolejnego i poprzedniego produktu oraz możliwość powrotu do aktualnej podstrony z wynikami. W jaki sposób to zaimplementować ? Przechowywać wyniki wyszukiwania w bazie danych pod odpowiednim numerem id który będzie zapisany w sesji danego użytkownika ? Czy może przechowywać tylko część wyników, zakładając że użytkownik i tak przejrzy tylko pierwsze x stron wyników ?
Czy może jakiś inny sposób ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
erix
post 20.07.2010, 10:59:34
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Przechowywać wyniki wyszukiwania w bazie danych pod odpowiednim numerem id który będzie zapisany w sesji danego użytkownika ? Czy może przechowywać tylko część wyników, zakładając że użytkownik i tak przejrzy tylko pierwsze x stron wyników ?

Wyciągnij do tablicy i zserializuj. Potem tylko wycinasz interesujący Cię zakres i pokazujesz. 6k wyników przy obecnym, domyślnym limicie pamięci powinno wystarczyć, a zawsze możesz zrobić płaską "bazę" danych i ładować z pliku tylko interesujące Cię rekordy.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
zzeus
post 20.07.2010, 11:06:49
Post #3





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


6k wyników dla jednego użytkownika, przy czym jednocześnie może pracować około 150 użytkowników, więc w danej chwili trzeba będzie operować nawet na 900k rekordów


--------------------
Go to the top of the page
+Quote Post
erix
post 20.07.2010, 11:27:08
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No i? 900k, to nie jest dużo. Odpowiednie indeksy i będzie ok, nawet bez wypluwania, zwykłym LIMIT-em.

A nawet jeśli będzie zajeżdżało -> wypluj do pliku, przechowuj w cache na np. 15 minut i sprawdzaj, czy nie masz już zbuforowanych.

Najlepiej zobacz sobie w istniejących skryptach forów, tam jest to najlepiej zrobione.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Pilsener
post 20.07.2010, 12:51:39
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Ja używam ciastek, bo moim zdaniem idealnie się nadają do personalizacji strony, wyświetlania kategorii czy promocji wg zainteresowania usera itp. itd.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:22