AUDYT 1 — SERWIS / UŻYTKOWNIK

Serwis

Mamy jedną platformę, której głównym zadaniem jest tworzenie i prowadzenie turniejów dartowych.

Dodatkowo istnieje Szybka Gra:

  • nie wymaga logowania,
  • nie tworzy uczestnictwa w turnieju,
  • nie zapisuje historii na koncie,
  • korzysta tylko z mechanizmu licznika meczu.

Użytkownik

Konto jest potrzebne do:

  • utworzenia turnieju,
  • bycia Adminem turnieju,
  • bycia Coadminem,
  • opcjonalnego powiązania uczestnika turnieju z profilem użytkownika.

Samo uczestnictwo w turnieju nie wymaga konta.

Uczestnik ≠ użytkownik

To jest chyba najważniejsze ustalenie:

USER │ │ opcjonalne user_id ↓ PARTICIPANT → TURNIEJ

Każdy zawodnik w turnieju jest participant.

participant.user_id może być:

  • NULL — zawodnik lokalny,
  • ID użytkownika — zawodnik powiązany z kontem.

W jednym turnieju oba rodzaje mogą występować jednocześnie. Nie mamy już „turnieju anonimowego” i „turnieju użytkowników”.

Powiązanie z kontem

Jeżeli uczestnik zostaje powiązany z user_id, system pobiera z konta aktualną nazwę/nick i klub i zapisuje je w participant.

Od tej chwili są to dane turniejowe. Późniejsza zmiana klubu/nazwy na profilu nie zmienia historii turnieju.

Admin może:

  • zmienić user_id,
  • podpiąć konto później,
  • odpiąć konto,
  • poprawić nazwę,
  • poprawić klub.

Bez sztucznych blokad.

Statystyki użytkownika

Nie zapisujemy statystyk na koncie.

Profil tylko odczytuje:

user_id ↓ participants ↓ matches ↓ legs ↓ visits

Dlatego poprawienie błędnego user_id automatycznie powoduje, że cała historia tego uczestnictwa zaczyna być widoczna na właściwym profilu. Nie trzeba przenosić żadnych statystyk.

Uprawnienia

Mamy tylko:

1 Admin + 0…n Coadminów

Admin = twórca/właściciel turnieju i pełna konfiguracja.

Coadmini = bieżąca obsługa, przede wszystkim prowadzenie i korekta wyników, bez zmiany podstawowych założeń turnieju.

Nie tworzymy roli Redaktora.

Wynik audytu #1

Na razie widzę jedną rzecz do zaznaczenia do późniejszego sprawdzenia, ale nie jako błąd:

co dokładnie zawiera profil użytkownika — nazwa/nick, klub itd. Nie projektowaliśmy jeszcze tabeli profilu.

I zgodnie z umową teraz jej nie projektujemy. 😁

Poza tym na tym poziomie nie widzę sprzeczności ani zbędnego mechanizmu.

Jeśli Ty też nie widzisz dziury, stawiamy:

AUDYT 1: ✅