Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Tworzenie tabeli, primary key i inne
Capellini
post
Post #1





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 16.10.2007

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


Nie jestem zbyt doświadczony jeżeli chodzi o MySQL dlatego proszę Was o radę. Chciałbym stworzyć tabelę, w której będą przechowywane dane na temat graczy w pewną grę. Tabela ta będzie miała 4 albo 5 pól:
-> ID gracza,
-> nazwa gracza,
-> hasło gracza,
-> wynik gracza,
-> ew. miejsce gracza w rankingu.

Zastanawiam się, któremu z tych pól mam ustawić Primary Key. Chyba powinno być to ID, ale chciałbym żebym mógł także szybko odszukiwać graczy o najwyższych wynikach więc chciałbym, żeby ci gracze byli posortowani jakoś wg miejsca w rankingu. I jeszcze jedno pytanie - czy można jakoś ustawić tak, żeby pole określające miejsce gracza w rankingu automatycznie ustawiało się wg wyniku, tzn. żebym przy zmianie wyniku jakiegoś gracza, nie musiał zmieniać miejsca w rankingu danego gracza?

Ten post edytował Capellini 14.06.2009, 13:02:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Dla kolumny id ustaw PRIMARY KEY.
Dla kolumny nazwa_gracza możesz dodać UNIQUE KEY

Powiedz mi jeszcze czy dobrze rozumiem kolumny wynik oraz ranking. Wynik, to wartość zdobytych punktów, a ranking to pozycja gracza na liście najlepszych wyników, czyli przykładowo:
Kod
+-------+---------+
| wynik | ranking |
+-------+---------+
|   123 |       1 |
|   110 |       2 |
|    76 |       3 |
|    75 |       4 |
|    50 |       5 |
+-------+---------+
Dobrze by było abyś w bazie danych przechowywał zarówno wynik jak i ranking użytkownika. Ranking co prawda można by każdorazowo dynamicznie obliczać, ale to niepotrzebny wysiłek dla bazy. I teraz jeżeli chodzi o nadawanie indeksów (teraz to już będzie zwykły indeks, nie primary czy unique). Jeżeli masz zamiar przeszukiwać tabelę na podstawie kolumny wynik to dla niej zakładasz indeks. Jeżeli masz zamiar przeszukiwać ją na podstawie kolumny ranking to dla niej też zakładasz index.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 08:46