![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 265 Pomógł: 4 Dołączył: 30.08.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
oto kolejny problem, na którego jest wiele możliwości rozwiązania i nie wiem która najlepsza (IMG:style_emoticons/default/smile.gif) Tworzę grę w php, i każdy użytkownik (gracz) będzie mógł sobie kupować w sklepie przedmioty (broń, jedzenie itp.) No i pytanie brzmi jak najlepiej (optymalnie) przechowywać te przedmioty w bazie ? 1. Stworzyć nową tabele która będzie je przechowywała(1 posiadanie przedmiotu 1 rekord) ? - tylko jak będzie 1000 graczy i każdy będzie miał 100 przedmiotów to ilość rekordów wyniesie 100 000:/ 2. Przechowywać przedmioty oddzielone przecinkami w oddzielnym polu w tabelipostaci ? - trochę potem będzie roboty z przetwarzaniem tego pola 3. Stworzyć tabele z przedmiotami i w polach przechowywać id użytkowników którzy je mają? 4. Stworzyć tabele z przedmiotami i w polu w tabeli z graczami przechowywać id przedmiotów jakie posiada ? Taki możliwości mi na razie przychodzą do głowy. Może ktoś ma lepszy pomysł ? Co będzie najwydajniejsze ? Ten post edytował GreenGo 26.05.2010, 15:30:26 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
ilość rekordów na pewno wpłynie na szybkość działania, ale w takim układzie jeżeli potrzebujesz wyświetlić przedmioty to robisz zwykły JOIN i prostym zapytaniem szybko wyciągasz to co potrzebne, a jeżeli będziesz trzymał przedmioty użytkownika po przecinku, albo w jakiejś tablicy to znacznie komplikuje wszystko, po za tym wydaje mi się, że operacje na polach typu INT, będą dużo szybsze niż na danych gromadzonych w VARCHAR
a co do zmniejszenia obciążenia możesz np zrobić tak, że raz pobrane przedmioty użytkownika wrzucasz do tablicy i zapisujesz w sesji i już nie wykonujesz więcej połączeń, chyba że gracz wykona działanie wpływające na liczbę przedmiotów Ten post edytował tehaha 26.05.2010, 17:31:49 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 13:03 |