Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pobranie z bazy czy z sesji, porównanie dwóch rozwiązań
AxZx
post
Post #1





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


witam,

chciałbym się poradzić, które rozwiązanie będzie korzystniejsze. nie chcę nic przeoczyć, a co dwie głowy to nie jedna:)

w moim serwisie zalogowany użytkownik może dodawać innych do ulubionych. chciałbym, żeby w zależności od tego czy dany użytkownik jest już dodany do ulubionych był widoczny link dodaj do ulubionych albo informacja, że ta osoba jest w ulubionych.
jak to sprawdzić?

ja mam w głowie 2 rozwiązania:
za każdym razem po wejściu na profil sprawdzać w bazie.
drugie rozwiązanie jest trochę bardziej skomplikowane, bo wymaga więcej operacji. podczas logowania pobierane są z bazy ID ulubionych użytkowników i zapisywane w sesji jako tablica. przy każdym wejściu na jakiś profil sprawdzana jest ta tablica z sesji. w przypadku gdy użytkownik zostanie dodany do ulubionych tablica ta musi zostać zmodyfikowana.

które rozwiązanie będzie lepsze jeżeli chodzi o wydajność? bo jeżeli mam patrzeć na łatwość implementacji to wybieram rozwiązanie pierwsze, dokładam tylko jedno zapytanie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


Cytat(nospor @ 27.11.2008, 13:22:19 ) *
czasami takie 6 zapytan mozna zastapic jednym - zależy co liczą (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


tak, wiem o tym:)
ale gorzej jak są one porozrzucane w kilku miejscach aplikacji:)
czasem są wykonywane tylko 2, a czasem właśnie te 6. nie zawsze można je połączyć.
ale co się da to połączę:)
tylko zastanawiałem się czy rzeczywiście to wpłynie pozytywnie na wydajność.

np. 2 zapytania
  1. SELECT count(idkontakt) FROM kontakt WHERE idprofil = 23
  2. SELECT count(idulubione) FROM ulubione WHERE idprofil = 23

vs. jedno
  1. SELECT (SELECT count(idkontakt) FROM kontakt WHERE idprofil = 23) AS kontakt, (SELECT count(idulubione) FROM ulubione WHERE idprofil = 23) AS ulubione
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: 29.12.2025 - 20:54