Szukam zaprojektować bazę danych dla strony internetowej, na której użytkownicy będą mogli zdobywać punkty (reputację) za wykonywanie niektórych czynności i zmagam się z projektem bazy danych.Jaki jest najlepszy sposób przechowywania/obliczania wyników użytkowników?
Mam zamiar przechowywać zapisy rzeczy, które robi użytkownik, aby mieć 25 punktów za nadesłany przedmiot, 1 punkt za 30 komentarzy, które zrobili, i kolejne 10 punktów za bycie niesamowitym!
Oczywiście wszystkie dane będą tam dostępne, ale wygląda na to, że dużo lub zapytano o łączny wynik dla każdego użytkownika, który chciałbym wyświetlić obok jego nazwy użytkownika (w postaci poziomu). Na przykład zapytanie do tabeli elementów przesłanych, aby uzyskać wyniki dla każdego elementu od tego użytkownika, zapytanie do tabeli komentarzy itp. Jeśli wszystko to musi zostać wykonane dla każdego użytkownika wymienionego na stronie ... DUŻO zapytań !
Zastanawiałem się nad utrzymywaniem wyniku w tabeli użytkownika, co wydaje się o wiele szybszym sprawdzeniem, ale miałem już do czynienia z tym, że przechowywanie danych, które można obliczyć z innych danych, to ZŁY!
Widziałem wiele stron, które robią podobne rzeczy (nawet przepełnienie stosu jest podobne), więc uważam, że musi istnieć "najlepsza praktyka" do naśladowania. Czy ktoś może zasugerować, co to może być?
Wszelkie sugestie lub komentarze będą świetne. Dzięki!
Przepraszam, jestem głupia - nie zauważyłem aspektu mysql. Nie sądzę, aby jeszcze indeksowały wyświetlenia. Normalną alternatywą, aby wymusić synchronizację, jest ustawienie wyzwalaczy. – ahains
Wyzwalacze sprawiają, że dziecko Jezus płacze. Cóż, i tak mnie to płacze. Nawet jeśli nie jest on zindeksowany, widok jest twoim przyjacielem. – Adrien