Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jaki Rodzaj Licznika
m2ka
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 17.07.2008

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


Witam wszystkich.

Od jakiegoś czasu zastanawiam się nad sposobem zliczania różnych rekordów i ciekawy jestem jakie rozwiązania stosujecie. Przykładowo mamy tabele "jakiś" produktów, w tabelce są informacje np 3 kolumny (id, nazwa_produktu, user) i wchodząc na odpowiednią stronę użytkownik widzi "ilość swoich produktów" (np 300).

Czy aby stworzyć taki licznik używacie zapytań SQL polegających na "zliczaniu rekordów" np.
SELECT COUNT(*) FROM tabela WHERE user='ktoś tam'.....
albo inne zapytania (tu prosił bym o wskazanie najbardziej wydajnego).

...Czy, może zamiast tego stosujecie osobną tabele o nazwie np "liczniki" i tam w odpowiedniej kolumnie za każdym razem zwiększana lub zmniejszana zostaje wartość (+1 lub -1) gdy użytkownik dodaje lub odejmuje "jakiś" produkt. Przy takim układzie nie było by już później potrzeby "zliczania" rekordów tylko wystarczyło, by wyświetlić wartość odpowiedniej komórki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
franki01
post
Post #2





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


Każdy przypadek trzeba rozważać indywidualnie. Jeżeli produktów jest bardzo dużo, to przydatniejsze będzie trzymanie takich danych w innym miejscu. Aktualizacja licznika następowałaby tylko przy zaplanowanej zmianie ilości rekordów przez zdefiniowaną do tego funkcję. Jeżeli rekordów jest mało, a ilość wizyt nie jest pokaźna, nie warto bawić się w takie rzeczy i marnować czas i miejsce na dysku. Osobiście wolę przetrzymywanie danych o rekordach w innej tabeli i wyciąganie jej razem z całym artykułem albo newsem. Do tego klasa aktualizująca wywoływana przy każdej zaplanowanej zmianie ilości rekordów + na wszelki wypadek cron i śmiga jak ta lala.

EDIT:
Aktualizacja ilości powiązanych rekordów, powinna odbywać się za każdym razem poprzez "SELECT COUNT(*) FROM tabela WHERE id_czegos=1", a nie dodawanie i odejmowanie od poprzedniej wartości.

Ten post edytował franki01 5.09.2009, 00:04:38
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: 12.10.2025 - 10:09