Nazwa tematu dziwna, juz tlumacze.
Mam w bazie danych tylko jedna tabele "uzytkownicy" ktora posiada:
username
password
register_time
damage
armor
exp
hp
gold
Prosta tabela, to jest cala baza gry tylko teraz jest problem z rzeczami, ktore bedzie posiadal gracz.
Pomysl jest taki, aby mogl miec duzej ilosci rzeczy 9999. Czyli nazwa przedmiotu jedno pole, a drugie ilosc tego przedmiotu.
Jak najlepiej zeby bylo wydajnie/szybko:
- Stworzyc nowa tabele tylko dla itemow w postaci:
user_id item_name item_value
3 miecz 999999
6 helm 1
Co jest dla mnie slabe? Gdy bedzie 100000 uzytkownikow kazde wywolanie inwetory bedzie musial baza przeszukac (coprawda po indexie) duza tabele z wszystkimi rzeczami ktore posiada uzytkownik po user_id.
- W tabeli uzytkownicy dodac do tych wszystkich rekordow danego usera po prostu nastepne pola czyli:
username - aktualna tabela
password - aktualna tabela
miecz - nowe pole
miecz_ilosc - nowe pole
I tak dla kazdej rzeczy prawie 2 pola, nazwa i ilosc chyba ze nazwa itemu by byla nazwa pola a nie jego wartosc.
Zaleta tej metody jest taka ze i tak na kazdej stronie pobieramy wszystkie dane danego usera wiec jesli by mial kazdy rekord usera rowniez jego itemy, mielibysmy poprzez jedno zapytanie Od razu wszystkie dane dostepne a w ponizszej metodzie (3) trzebaby zrobic juz JOIN/pobrac z dwoch tabel.
- Nowa tabela ale ten sam sposob co nr 2 czyli zamiast dodac wszystkim uzytkownikom rekordy itemow to zrobic osobna tabele:
miecz - nowe pole
miecz_ilosc - nowe pole
- Jakis lepszy/wydajniejszy pomysl?