Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyniki egzaminów, Wyliczać, czy zapisywać?
Omenomn
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 4.02.2014

Ostrzeżenie: (20%)
X----


Cześć, potrzebuję wyświetlić na stronie wyniki testów rozwiązywanych w aplikacji i zastanawiam się, czy zapisywać je po rozwiązaniu testu przez użytkownika do bazy danych, czy dynamicznie je wyliczać?

Aktualnie mam tabelę z results z różnymi polami, np. ilość pytań łączna, ilość pytań poprawnych poprawnych, ilość pytań błędnych, zdany (true/false), wynik w procentach itd.

Rozwiązanie to jest pod względem szybkości dość dobre według mnie, bo przy wyświetlaniu po prostu pobieram rekordy z bazy.
Natomiast jest to jednak powielanie danych w bazie, bo wszystkie te pola mógłbym wyliczać dynamicznie w mysql i pytanie do Was, które rozwiązanie jest lepszą praktyką, wiem, że powielanie danych w bazie, nie jest dobrą praktyką, jak sądzicie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Omenomn
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 4.02.2014

Ostrzeżenie: (20%)
X----


wyniki zliczane są na podstawie tego czy ilość poprawnych odpowiedzi udzielonych przez usera na pytanie jest równa ilości poprawnych odpowiedzi zaznaczonych przez tworzącego test i czy ilość niepoprawnych odpowiedzi jest równa zero.

Relacje w bazie danych są dość skomplikowane, ale w każdym razie po zakończeniu testu mam zapytanie, które podsumowuje wszystkie pytania i dodaje wyliczone pole correct, którego wartość to 1 - poprawne, 0 - niepoprawne lub null, jeśli pytanie wymaga sprawdzenia przez admina.

Na podstawie tego zapytania tworzę rekord w tabeli results, gdzie przechowuję ilość pytań, aktualny wynik, czy zdany, czy nie itd.

Mógłbym selectem obliczać na podstawie udzielonych odpowiedzi przez użytkownika, czy zaliczył, czy nie i resztę kolumn, a w results przechowywać jedynie id testu i id użytkownika, żeby mieć informacje o zakończonym teście.

Sam nie wiem.
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: 16.10.2025 - 20:23