Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: statystyka - przechowywanie danyh
Forum PHP.pl > Forum > Bazy danych > MySQL
japolak
Witam

che sobie stworzyć statystykę użytkowników..

przykładowo
każdy użytkownik za napisanie np. komentarza dostaje 2 pkt. za wstawienie zdjęcia dostaje 4 itd..

moje pytanie jest

Co było by lepsze czy:
1. stworzenie nowej tabeli w bazie w której zapisywane były by punkty: w spoób następujący ( id_ uzytkownik, punkty, za_co)wartość była by za każdym razem zwiększana (przykład: użytkownik ma 10 pk napisał komentarz . to wartość zmienia mu sie na 12 pkt)
2. stworzenie nowej tabeli w bazie w której zapisywane były by punkty: w spoób następujący ( id_ uzytkownik, punkty, za_co, data) -każdy punkt byłby zapisywany w bazie jako kolejny rekord, pozniej aby wyświetlic liczbę punktów trzeba było by wyszukac wszystko z tabeli statytyka i dodać.
3. nie tworzenie nowej tabeli - tylko szukanie po tabelach: z komentarzami itp, ilości napisanych przez uzytkownika komentarzy itd. i pomnożenie przez ilość punktów za każdym razem gdy chcemy zobaczyć statystykę?


a może macie inną propozycje?
pehaperowiec
dodanie do istniejącej tabeli, która przechowuje informacje o userach, kolumny przechowujacej punkty i operowanie na jej wartości podczas odpowiedniej akcji wink.gif
skowron-line
Według mnie najlepiej by było
1 do tabeli user dodać kolumnę w której bys trzymał ilość punktów usera (zwiększa sie po każdym komentarzu i każdym zdjęciu)
2 nowa tabela id_user, pkt, za co (tak jak by sobie ktoś chciał zobaczyć za co punkty dostał user)
japolak
ok dzięki za podpowiedzi..

tak sobie myślę, że chciałbym mieć też możliwość sprawdzenia ile w danym okresie użytkownik zdobył pkt.

czy opcja która ja proponowałem nr. 2 była by najlepsza ? czy jest może jakieś bardziej "wydajniejsze " lub "ekonomiczniejsze" wyjście..questionmark.gif
mmmmmmm
Opcja nr 2 jak najbardziej się do tego nadaje.
A czy jest najlepsza, to zależy od rodzaju bazy danych, ilości danych, struktury tabeli itp...
dr_bonzo
Cytat(japolak @ 17.09.2012, 23:04:01 ) *
(...)
tak sobie myślę, że chciałbym mieć też możliwość sprawdzenia ile w danym okresie użytkownik zdobył pkt.

czy opcja która ja proponowałem nr. 2 była by najlepsza ? czy jest może jakieś bardziej "wydajniejsze " lub "ekonomiczniejsze" wyjście..questionmark.gif


Rozwiązanie zależy od tego co chcesz robić z tymi punktami. W wersji podstawowej wystarczy kolumna w userze do zliczania sumy punktów.
Jeśli chcesz wiedzieć ile punktów user zdobył w danym okresie - to warto zapisać przyznane punkty w osobnych rekordach z datą przyznania tych punktów.
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.