![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 1 Dołączył: 17.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam zamiar zrobić a właściwie juz robię prostą gierkę na przeglądarkę ( tekstową ). Póki co mam 3 tabele : info o graczu ( poziom, statystyki i jakies 24 inne parametry postaci ), spis jego narzedzi ( z ich parametrami i ilością ), spis wszystkich narzedzi w grze ( rowniez z parametrami i innymi duperelami) Zastanawiam sie tylko, czy nie spadnie wydajnosc strony przy wiekszej ilosci ludzi jak zostawie takie 3 tabele czy moze jednak zapisywac kazdego gracza w osobnej tabeli i w niej wszystko co sie jego tyczy... czyli tabela "nick gracza" a w niej poziom, statystyki, narzedzia i inne duperele czyli dwie połączone tabele ale kosztem tego, że kazdy gracz bedzie inną tabelą ;P mam nadzieję, że jasno się wyrazilem ;P |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 273 Pomógł: 21 Dołączył: 28.11.2010 Ostrzeżenie: (10%) ![]() ![]() |
skad w ogole taki pomysl? 1 tabela = 1 uzytkownik to dopiero bylaby katastrofa
zostaw tak jak masz teraz -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 486 Pomógł: 101 Dołączył: 27.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
a po co są tabele?
![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 1 Dołączył: 17.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
żebym sobie uporządkował masę danych ?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 29 Pomógł: 3 Dołączył: 16.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat czy moze jednak zapisywac kazdego gracza w osobnej tabeli Z tego co piszesz wynika, że gdy masz na przykład 100 graczy, to musisz mieć 100 tabeli. Robisz jedną tabelę i do niej wrzucasz rekordy. @edit: Zrób np. tak: tabela [gracze]: -> uid, -> login, -> password, -> level, -> itd... Ten post edytował PlayKiller 28.03.2011, 18:17:15 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 247 Pomógł: 11 Dołączył: 5.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Co to za dziwny pomysł żeby każdy gracz był oddzielną tabelą
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 1 Dołączył: 17.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
wiem , że dziwny pomysł ;P ale wpadł mi w momencie gdy pomyślalem, że jak ( tu z usmiechem ) bedzie 1000 osob ( o ile w zyciu bym sie doczekal tylu ;P)
to jak każdy będzie miał w tabeli "dla wszystkich" po 100 itemow to skrypt szukający danych konkretnego uzytkownika chyba troche sie zamuli ( tak przynajmniej sadze ) i dlatego pomysl zeby kazdy mial swoja tabele w ktorej ma tylko swoje dane ( chociaz tez wydawalby mi sie uciazliwy dlatego pytam jak inni sądzą ) ale juz mam dpowiedź więc dzięki ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 29 Pomógł: 3 Dołączył: 16.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat to jak każdy będzie miał w tabeli "dla wszystkich" po 100 itemow to skrypt szukający danych konkretnego uzytkownika chyba troche sie zamuli Nie doceniasz potęgi baz danych. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Ze spokojem; bazy danych nie `zamulisz`.
Byłoby to realne przy 10000 użytkowników non-stop odświeżających stronę ![]() To zależy raczej od parametrów stacji roboczej/serwera niż samej bazy. kombinuj ![]() -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
to jak każdy będzie miał w tabeli "dla wszystkich" po 100 itemow to skrypt szukający danych konkretnego uzytkownika chyba troche sie zamuli ( tak przynajmniej sadze ) Pamiętaj o podstawach optymalizacji baz typu indeksy i będzie dobrze. -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
O matko, każdy świeżak zawsze ma takie pomysły na początku, że chciałby robić tabelę dla każdego użytkownika, skąd to się w ogóle bierze.... A pomyśl jakbyś wtedy napisał zapytanie które wyciągało by 10 ostatnio zarejestrowanych użytkowników sortując od najnowszego no najstarszego ? - podpowiedź: "nie napisałbyś". Są bazy co mają po milion rekordów i sobie radzą. Druga sprawa to to, że jeśli uda ci się osiągnąć milion użytkowników to będziesz zarabiał kupę kasy i zatrudnisz kogoś kto to zrobi lepiej. A teraz pamiętaj, są dwie zasady optymalizacji:
1. Dont do it ! 2. Dont do it yet ! Tak więc na razie nawet nie przejmuj się optymalizacją bo sądząc po tym co napisałeś i tak nie zrobisz tego dobrze ![]() Ten post edytował krowal 29.03.2011, 18:00:43 -------------------- Nawet świnka może wejść na drzewo kiedy jest chwalona :)
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 7 Dołączył: 27.03.2011 Skąd: Kęty Ostrzeżenie: (0%) ![]() ![]() |
1. Dont do it ! 2. Dont do it yet ! Podpisuje się wszystkimi czterema kończynami. W temacie nie przejmuj się tym mam tabele gdzie jest kilka milionów rekordów i wszystko śmiga że aż miło ![]() Proponuje tabele Itemy (wszystkie narzędzia w grze, jeden wiersz jedno narzędzie, kolumny to atrybuty opisujące narzędzie) | UserItems (narzędzia powiązane z użytkownikiem starcza 2 kolumny user_id i item_id (ewentualnie dodaj trzecią na ilość)) | Users (wszyscy użytkownicy, kolumny to atrybuty opisujące urzytkownika) Na początek powinno starczyć, spróbuj wyjść od tego i pokarz co ci wyszło ![]() Ten post edytował wmatusiak 29.03.2011, 19:51:23 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 1 Dołączył: 17.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Podpisuje się wszystkimi czterema kończynami. W temacie nie przejmuj się tym mam tabele gdzie jest kilka milionów rekordów i wszystko śmiga że aż miło ![]() Proponuje tabele Itemy (wszystkie narzędzia w grze, jeden wiersz jedno narzędzie, kolumny to atrybuty opisujące narzędzie) | UserItems (narzędzia powiązane z użytkownikiem starcza 2 kolumny user_id i item_id (ewentualnie dodaj trzecią na ilość)) | Users (wszyscy użytkownicy, kolumny to atrybuty opisujące urzytkownika) Na początek powinno starczyć, spróbuj wyjść od tego i pokarz co ci wyszło ![]() Właściwie miałem tak skontruowaną bazę z wyjątkiem tabeli UserItems bo mam tam więcej informacji ze względu na to że chce pozwolić na ulepszenia danego itemka dlatego samo id nie pozwoli mi pobrac konkretnego itemu ![]() mam jeszcze jeden mały problemik ;P mam w tabeli pole LVL oczywiscie INT... tylko, że jak pobieram z tabeli dane i sortuje wyniki wg LVL to otrzymuje takie coś: 1 10 11 12 13 14 15 16 17 18 19 2 zamiast tego co oczekiwałem ![]() da się to jakoś poprawić ? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 3 Dołączył: 24.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
A podaj kawałek kodu odpowiadający za tą czynność...
Wtedy będę mógł ci pomóc, bo jak wiesz... (chyba ;]) nikt nie potrafi czytać w myślach w ten sposób |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 1 Dołączył: 17.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 3 Dołączył: 24.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
A więc tak...
Dlaczego jak używasz mysql, masz taga mssql? Tak się to na ogół pisze... DESC znaczy malejąco, czyli będzie uporządkowywać według levela malejąco, jak w rankingu... Potem jak pewnie wiesz, musisz jakiegoś while lub fora, by wypisać wszystkie rekordy... Jak chcesz bardziej szczegółowo, to podaj cały kod i z poprawnymi nazwami tabel... |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 1 Dołączył: 17.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
DESC tym bardziej nie ... ani ASC ani DSC nie sortuje mi wyników po kolei ( 1,2,3,4,5...) tylko (1,10,11...2,20,21...)
DESC to wgl mi ja odwraca "do gory nogami " jakies inne pomysły ? |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 224 Pomógł: 3 Dołączył: 24.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jak masz tablicę gracze, i tam kolumnę lvl to się na ogół daje:
Tak się to normalnie robi... jak ci nie działa, to pewnie nie potrafisz pisać ;] Co do tego group by nie jestem pewien... A pozatym zobacz se to: order by w mysql |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 110 Pomógł: 1 Dołączył: 17.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
w czym tu mogłem sie pomylić ? manuala do ORDER BY raczej nie potrzebuję bo średnio jest tu się w czym pomylić ... kod nadal nie dziala poprawnie ( nie sortuje- wszystko inne działa ) // z drugiej strony dzieki za przypomnienie o mysql_fetch_assoc ;P Ten post edytował maxis88 3.04.2011, 17:07:49 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
w czym tu mogłem sie pomylić ? manuala do ORDER BY raczej nie potrzebuję bo średnio jest tu się w czym pomylić ... miałem już pisać wczoraj ale zauważyłem, że napisałeś, iż dane pole po którym sortujesz jest typu integer... jednak jak dla mnie to sortowanie jest "słownikowe" - czyli pole owe chyba jednak nie masz w bazie typu integer - nie wiem też jak się zachowuje mysql jeśli zrobisz literówkę i napiszesz coś podobnego do integer - upewnij się co do struktury tabeli...-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 22:05 |