Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przechowywanie wyników wyszukiwania
Forum PHP.pl > Forum > PHP
zzeus
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 ?
erix
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.
zzeus
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
erix
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.
Pilsener
Ja używam ciastek, bo moim zdaniem idealnie się nadają do personalizacji strony, wyświetlania kategorii czy promocji wg zainteresowania usera itp. itd.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.