japolak
17.09.2012, 20:19:05
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
17.09.2012, 20:49:38
dodanie do istniejącej tabeli, która przechowuje informacje o userach, kolumny przechowujacej punkty i operowanie na jej wartości podczas odpowiedniej akcji
skowron-line
17.09.2012, 21:23:44
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
17.09.2012, 22:04:01
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..
mmmmmmm
18.09.2012, 07:03:09
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
25.09.2012, 20:07:13
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..

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.