Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]moduł osiągnięcia na 30dni
phpuser88
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 4.05.2019
Skąd: PHP5.6

Ostrzeżenie: (0%)
-----


Załóżmy, że chce wyświetlić użytkownikowi możliwość zdobywania osiągnięć, a każde osiągnięcie ma swój własny postęp i zostanie zrealizowane gdy osiągnie swój max.postęp - o ile max.postęp zostanie osiągnięty w max.30dni od chwili zrealizowania pierwszego postępu.
Przykład:
1. Tytuł osiągnięcia: Aktywny komentator
2. Opis osiągnięcia: podejmij się napisania 15x różnorodnych komentarzy powyżej 100 znaków w ciągu 30 dni.
3. Postęp: 0 / 15

Stworzyłem sobie funkcje, która wyświetla właściwy html, ale mam zagwozdkę jak rozsądnie stworzyć bazę danych, bo każde osiągnięcie można zrealizować wciągu 30 dni od chwili zrealizowania pierwszego "postępu", a to wyklucza proste i optymalne rozwiązanie jakim jest wrzucenie wszystkiego w jedną tabele pod ID_USERA i jedynie updatowanie poszczególnych osiągnięć +1 w danym wierszu. Tutaj raczej trzeba dodać jeszcze date realizacji i ew. crona do czyszczenia, a to generalnie zrobi wielki ruch w tabeli, bo z np. 1000000 wpisów zrobi się 1000000*ilość osiągnięć*max.postęp.
Nie jestem zbyt zaawansowany więc niestety nie znam wielu fajnych rozwiązań więc zanim zrobię to tak, jak to widzę w powyższym okropnym opisie wolę zapytać czy istnieje lepszy pomysł?
Tak to widzę:
  1. #BazaSQL:
  2. id_usera | dataRealizacji | osiagniecie1 | osiagniecie2 | osiagniecie3 |
  3. 123456 | 21.01.22 | 0 | 0 | 1 |
  4. 123456 | 21.04.22 | 0 | 0 | 1 |
  5. 123456 | 28.04.22 | 0 | 0 | 1 |
  6. 123456 | 01.05.22 | 0 | 0 | 1 | //to jest ID_usera, który ma postęp 3x w Osiągnięciu3
  7.  
  8. #PHP
  9. function osiagniecia($tytul,$postep,$postepMax,$opis){...}
  10.  
  11. echo osiagniecia("tytul osiagniecia",$row['osiagniecie3 '],15,"opis osiagniecia do zrealizowania");
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: 4.10.2025 - 17:11