Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dobór optymalnej struktury tabeli MySQL, prośba o radę praktyków.
MalyKazio
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Witam,

Zastanawiałem się czy umieścić ten wątek w dziale PHP czy też MySQL ale chyba ten pierwszy będzie odpowiedniejszy. Chodzi mi o wskazówki jaki rodzaj tabeli będzie odpowiedniejszy do moich zastosowań.
Mam tabelę z wynikami zawodów. Powiedzmy, że nazywa się 'wyniki'. Składa się z kolumn id(autoincrement),osoba(z tabeli osoby),nrzawodow(z tabeli zawody). Potem mam pola z wynikami dla poszczególnych konkurencji np. strzelanie(ilość pkt), bieg(ilość pkt). Teraz moje wątpliwości sprowadzają się do tego, że każde dodanie nowej konkurencji wiąże się z modyfikacją struktury tabeli z wynikami i dodaniem odpowiedniej kolumny. Czy nie lepiej byłoby zrobić oddzielną tabelę 'kokurencje' (idkonkurencji,nazwa), gdzie trzymać ich nazwy a w tabelę z wynikami przerobić na strukturę (id,osoba,nrzawodow,idkonkurencji,wynik)? Wiem, że w przypadku gdy osoba na jednych zawodach startowałaby w wielu konkurencjach to miałbym kilka rekordów w bazie danych zamiast jednego ale z drugiej stron przy 20 konkurencjach nie miałbym przy każdej osobie, która startowała np. tylko w jednej konkurencji na danych zawodów praktycznie całego wiersza pustych wpisów. No i dodawanie kolejnych konkurencji byłoby łatwiejsze.
Co o tym sądzicie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MalyKazio
post
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


OK, napiszę to trochę inaczej. Mam bazę harcerzy. Są dane harcerzy w jednej tabeli. W drugiej mamy obozy harcerskie.
Teraz tabela wygląda tak:
ranking harcerzy:
id,harcerz,oboz,pozycja(pod względem ilości zdobytych sprawności na obozie),ocena z obozu,zdobytasprawnosc1,zdobytasprawnosc2,zdobytasprawnosc3,itd.

pola harcerz i oboz to odpowiednio id z innej tabeli, gdzie są harcerze i obozy. Pozycja jest wyliczona na podstawie roznych danych (w ramach jednego obozu),ocena to ocena za obóz (od 1 do 6), zdobytasprawnosc1(...)x to odpowiednio zdobyte sprawnosci (albo tak albo nie - wartosci 0 lub 1).
Czy rozbijać taką tabelę na trzy tabele:
1. rankingharcerzy (id,harcerz,oboz,pozycja,ocena)
2. rankingsprawnosci (id,harcerz,oboz,idsprawnosci,iloscpunktowzanią)
3. listasprawnosci (id,nazwa,punkty).
Czy też nie ma to sensu i jest to za duzo roboty? W chwili obecnej jeśli chcę dodać sprawność to muszę modyfikować tabelę ranking harcerzy i dodawać nową kolumnę.

Ten post edytował MalyKazio 3.09.2008, 18:36:10
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: 9.10.2025 - 23:20