Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Rozplanowanie programu
Forum PHP.pl > Forum > Przedszkole
Ravik
Witam,

Mam problem, gdyż nie wiem jak mam zrobić następujące zadanie:

Użytkownik się rejestruje i na starcie dostaje 5 darmowych kartek to wysłania, poźniej musi spełnić pewien wymóg aby otrzymać więcej kartek, jednak z każdym wysyłaniem ich liczba maleje.

Nie potrafię sobie wyobrazić jakich funkcji mam użyć i jak rozplanować aplikację, gdzie mam przechowywać informację o ilości kartek, jednocześnie żeby ich liczba za każdą wysyłką malała.

Mógłby mi ktoś doradzić ?

Pozdrawiam
blahy
Najwygodniej taka informacje przechowywac w bazie danych.
Mozna zrobic dodatkowe pole darmowe_kartki w tabeli uzytkownik i przechowywac tam liczbe darmowych kartek. Przy rejestracji nowego uzytkownika wstawiasz 5 a pozniej odpowiednio aktualizujesz pole.
Drugie rozwiazanie jest chyba lepsze. Tworzysz nowa tabele kartki o polach id, uzytkownik_id + jakies dodatkowe pola. Przy rejestracji uzytkownika do tabeli kartki dodajesz 5 rekordow o uzytkownik_id = id rejestrowanego uzytkownika. Teraz obslugujac wysylke liczysz ile dany uzytkownik ma kartek (po uzytkownik_id), jesli > 1 to ok. W odpowiednich momentach dodajesz lub usuwasz rekordy w tabeli kartki. Zadanie nie wykracza poza standardowe zastosowania php+mysql.
Ravik
Czy mógłbyś powiedzieć coś więcej o drugim rozwiązaniu ? Mam dodać 5 rekordów do tabeli, a nie liczbę ? Podczas kiedy user wysyła kartkę usuwany jest jeden rekord, dobrze myślę ?
Daiquiri
Tylko czy ten drugi sposób to nie lekka przesada w ilości pozycji? Jasne, że po "wykorzystaniu" kartki kasujesz jeden wiersz, ale skoro nie trzymasz w tej tabeli niczego innego jak ID usera, to chyba trochę bez sensu. A co jeżeli będziesz chciał użytkownikowi "przydzielić" 20 kartek? Będziesz tworzył 20 dodatkowych wierszy?

Pierwszy sposób wydaje się być lepszy. Dodatkowe pole z ilością kartek, które określa ile ich jeszcze zostało. Potem wystarczy zrobić "UPDATE" pola aby je pomniejszych lub powiększyć o jakąś liczbę kartek.
!*!
W drugim sposobie chodziło o to że informacje o kartach dajesz w innej tabeli. A nie o to że dajesz każdą kartę osobno jako rekord.

Cytat
id_usera | liczba kart
1 2
2 5
3 20


I później przy wysyłaniu karty aktualizujesz po ID, ilość kart. Możesz to zrobić oczywiście na jednej tabeli, jednak przy ewentualnej późniejszej rozbudowie, przydadzą się dwie. Uważam że trzeba oddzielać dane do logowania, od danych opcjonalnych.
Daiquiri
Rozumiem, z tym że blahy napisał "przy rejestracji dodajesz 5 rekordów" - i to mnie zmyliło smile.gif.
blahy
napisalem rekordy, bo mialem na mysli rekordy w 2 rozwiazaniu. Oczywiscie wszystkie trzy rozwiazania (liczba kartek w tabeli user, liczba kartek w osobnej tabeli, kartka jako rekord w sobnej tabeli) sa poprawne i wszsytko zalezy od tego jak bardzo bedziesz rozbudowywal pomysl. ja przewidzialem to ze kazda kartka moglaby miec dodatkowe parametry takie jak np. czas utworzenia, dodania, uzycia, czas waznosci, kto dana kartke przydzielil itp. wtedy najwygodniej jakby kazda z nich byla osobnym rekordem w tabeli smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.