![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam ponownie, ogólnie tematyka jest prosta, jednak wole się upewnić czy przyjąłem dobrą technikę punktacji.
Moim celem jest stworzenie systemu do dodawania, oraz odejmowania punktów użytkownikowi. Mógłbym w tabeli z userami dać kolumnę "punkty", ale takie rozwiązanie wydaje mi się mało wydajne. Chciałbym mieć możliwość stworzenia historii punktacji, a więc pomyślałem że stworze oddzielną tabele z polami: id, id_user, data, punkt, za_co I takie rozwiązanie wydaje mi odpowiednie, w zapytaniu robię tylko SUM dla pola punkt z uwzględnieniem danego usera i mam wynik punktacji. Nie wiem jednak jak to się sprawdzi w przypadku ujemnych punktów. Czy wystarczy jak do pola punkt dodam ujemny punkt? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź!
Czy tak trudno najpierw samemu spróbować, przekonać się co jak działa, czy domysły są słuszne? Własna nauka i doświadczenie są bezcenne! Działanie rozwija zrozumienie. |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Mógłbym w tabeli z userami dać kolumnę "punkty", ale takie rozwiązanie wydaje mi się mało wydajne. Cytat I takie rozwiązanie wydaje mi odpowiednie, w zapytaniu robię tylko SUM dla pola punkt z uwzględnieniem danego usera i mam wynik punktacji. Nie kumam Twojego toku myślenia. Uważasz, że latanie po x rekordach i ich sumowanie jest bardziej wydajne od odczytania pola z jednego rekordu? W którym wymiarze tak jest? (IMG:style_emoticons/default/wink.gif) Skoro chcesz mieć historię to połącz obie metody. Stwórz tabelę z historią, ale też stwórzy pole w tabeli usera i te pole na bieżącą aktualizuj. Będziesz miał szybko i historię |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czy tak trudno najpierw samemu spróbować, przekonać się co jak działa, czy domysły są słuszne? Kolego, wiele razy miałem tak że z początku coś zdawało egzamin, jednak kiedy potrzebowałem zwiększyć funkcjonalność to już musiałem od zera pisać bo nie pomyślałem o tym od razu. Po II jest to dział "Przedszkole", a nawet dzieci w przedszkolu zadają pytania. Na forum są osoby z o wiele większą praktyką i na pewno znajdzie się osoba, która przerabiała ten temat. Z chęcią wysłucham na co zwrócić uwagę i jak optymalnie napisać kod Tyle słowem wstępu. Cytat Nie kumam Twojego toku myślenia. Uważasz, że latanie po x rekordach i ich sumowanie jest bardziej wydajne od odczytania pola z jednego rekordu? W którym wymiarze tak jest? Skoro chcesz mieć historię to połącz obie metody. Stwórz tabelę z historią, ale też stwórzy pole w tabeli usera i te pole na bieżącą aktualizuj. Będziesz miał szybko i historię Właśnie brałem pod uwagę taką opcję, jednak nie wiedziałem jak na jednym polu tworzyć historię punktacji. Stworzenie dodatkowej tabeli gdzie mógłbym tworzyć taką historię jest bardzo dobrym rozwiązaniem, tylko boje się że w pewnym momencie stracę zbieżność informacji między dwoma tabelami. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat tylko boje się że w pewnym momencie stracę zbieżność informacji między dwoma tabelami. Nic nie stoi na przeszkodzie byś raz na jakiś czas kolumne w tabeli usera aktualizował na podstawie bieżących danych w historii.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 322 Pomógł: 15 Dołączył: 29.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok, zabieram się do działania (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 15:39 |