Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Rozplanowanie programu
Ravik
post 28.09.2010, 11:22:12
Post #1





Grupa: Zarejestrowani
Postów: 95
Pomógł: 3
Dołączył: 8.05.2009

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


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
Go to the top of the page
+Quote Post
blahy
post 28.09.2010, 11:39:21
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 22
Dołączył: 20.07.2010

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


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.
Go to the top of the page
+Quote Post
Ravik
post 28.09.2010, 12:53:33
Post #3





Grupa: Zarejestrowani
Postów: 95
Pomógł: 3
Dołączył: 8.05.2009

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


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ę ?
Go to the top of the page
+Quote Post
Daiquiri
post 28.09.2010, 14:00:15
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




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.

Ten post edytował Daiquiri 28.09.2010, 14:00:54
Go to the top of the page
+Quote Post
!*!
post 28.09.2010, 14:14:56
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


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.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Daiquiri
post 28.09.2010, 14:30:22
Post #6





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Rozumiem, z tym że blahy napisał "przy rejestracji dodajesz 5 rekordów" - i to mnie zmyliło smile.gif.

Ten post edytował Daiquiri 28.09.2010, 14:31:03
Go to the top of the page
+Quote Post
blahy
post 28.09.2010, 17:44:10
Post #7





Grupa: Zarejestrowani
Postów: 82
Pomógł: 22
Dołączył: 20.07.2010

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


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 16:30