Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Planowanie bazy danych
GreenGo
post 22.05.2010, 21:20:01
Post #1





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


Witam,
piszę grę RPG w php i mam takie pytanko. Jak najlepiej zrobić ze zmieniającymi się statystykami takimi jak np. punkty życia ? Jest to wartość, która jest dość płynna. Jest wartość maksymalna ale obecne posiadane punkty zmieniają się z każdą walką. Czy najlepiej jest w tej samej tabeli stworzyć nowe pole zapamiętujące aktualną wartość punktów życia czy może to rozwiązać inaczej ?
Go to the top of the page
+Quote Post
emtiej
post 22.05.2010, 21:23:51
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


tabela user z polami: nick, pass, mail, life..... i co tam jeszcze chcesz, po każdej walce uaktualniasz pole life dla poszczególnego usera, możesz to zrobić też w osobnej tabeli, ale moim zdaniem wtedy zapytań będzie więcej, bo np. podczas wyświetlania profilu użytkownika musiałbyś pobierać info z 2 tabel, a tak odczytujesz całość i wyświetlasz. Takie jest moje zdanie.
Go to the top of the page
+Quote Post
GreenGo
post 22.05.2010, 21:48:16
Post #3





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


To znaczy już teraz mam 2 tabele. Jedną z danymi do konta u jego ustawieniami a drugą z całą postacią ale myślę, że pobieranie danych z tych 2 tabel za pomocą jednego zapytania nie będzie trudne. Chodzi mi raczej czy tworzyć może jeszcze jedną tabele czasową do obsługi takich właśnie zmieniających się wartości czy rozwiązać to za pomocą dodatkowych pól w tabeli z statystykami postaci ?

Mam też drugie pytanie.
Jako, że naturalnie będzie można walczyć z potworami, to czy te potwory oraz ich statystyki trzymać w bazie czy raczej tworzyć/generować je w php ? One będą miały stałe parametry (życie, siła, szybkość itp.) więc chyba lepszym wyjściem będzie robienie tego na poziomie php niż zwiększanie ilości zapytań do bazy. No i jeśli zrobić to pomijając bazę, to jaki wzorzec będzie najlepszy do prostego tworzenia różnych potworów ? Simply Facotry, Factory Method, nadadzą się?
Go to the top of the page
+Quote Post
thek
post 23.05.2010, 11:07:31
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zauważ jednak, że potwory to także pewna wartość dynamicznie się zmieniająca. Raz trafisz na potwora A innym razem na C. Tak więc musisz mieć jakąś ich bazę/bibliotekę. Rozwiązania masz sumie różne do wyboru. Chyba jednym z sensowniejszych będzie zapis tego do bazy i później w razie potrzeb przesyłanie do cache serwera. Możesz też zrealizować to jako bazę plikową. Obydwa rozwiązania mają swoje wady i zalety związane z czasem dostępu, łatwością edycji czy dodawania nowych danych. Tu musisz sam się zastanowić więc co będzie lepsze w Twoim przypadku, bo nie ma jednoznacznie prawidłowej odpowiedzi. Wiele zależy od częstotliwości użycia, ilości danych przy każdym z potworów czy choćby nawet ilości tych potworów.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 11:25:22
Post #5





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


No tak, potworów będzie ok 20-30. Gracze będą z nimi walczyli kiedy chcą, wystarczy, że udadzą się w jakiś określone miejsce na mapie wiec przy 1000 graczach, jeśli wszyscy naraz będą chcieli walczyć to będzie 1000 zapytań choć walka z potworami to będzie raczej tylko taki dodatek do reszty, więc na pewno zapytań bedzie mniej. Chciałbym również aby każdy wywołany potwór różnił by się np. siłą +-5% ale to chyba nie ma znaczenia czy bazowe wartości będę pobierał z bazy czy z plików. Jak uważasz, lepiej cachować zapytań i trzymać w bazie czy może dane każdego potwora trzymać w oddzielnym pliczku .txt i przetwarzać je jakimś skryptem ?
Go to the top of the page
+Quote Post
emtiej
post 23.05.2010, 18:32:15
Post #6





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


Cytat
trzymać w bazie czy może dane każdego potwora trzymać w oddzielnym pliczku .txt i przetwarzać je jakimś skryptem ?


Ja mam pytanie, czy jednocześnie z potworem może walczyć kilka osób? Jeżeli tak to zapis do pliku będzie mało efektywny, jeżeli nie no to możesz wszystko zapisywać w pliku, jak Ci wygodniej.

Cytat
Jako, że naturalnie będzie można walczyć z potworami, to czy te potwory oraz ich statystyki trzymać w bazie czy raczej tworzyć/generować je w php


Jak mają być widoczne tylko dla gracza walczącego z potworem to nie warto męczyć bazy
Go to the top of the page
+Quote Post
GreenGo
post 23.05.2010, 19:11:39
Post #7





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


No walka odbywa się w trybie indywidualnym. Gracz idzie na jakieś miejsce gdzie ma ileś tam % szansy aby spotkać potwora i jeśli uda mu się, to rozgrywa się walka 1v1.
No to jak na razie rozumiem, że najlepiej oprzeć to na plikach. Zastosować do tego jakis wzorzec czy sposób wykonania samemu wymyślić ?

Ten post edytował GreenGo 23.05.2010, 19:12:22
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: 31.07.2025 - 06:10