Wojciech Janiszewski

Wojciech Janiszewski Instructor,
Zieleniec

Temat: Jak zaprojektować bazę danych na zawody

Witam,

Chcę utworzyć bazę danych która bedzie służyła do zapisywania uczestników, ich czasów przejazdów oraz później sortowanie ich podług różnych kryteriów.

Jak taką bazę zaprojektować?

Czy utworzyć osobno tabele w których będą dane zawodników i osobno tabele czasów która będzie później z nimi powiązana a czasy wprowadzane za pomocą formularza?

Jeżeli w tych zawodach są trzy edycje w roku to czy każda edycja to musi być osobna baza, czy można zrobić trzy edycje w jednej bazie. Jeżeli znajdzie się ktoś chętny do pomocy w zaprojektowaniu takiej bazy to podam więcej szczegółów.

pozdrawiam

konto usunięte

Temat: Jak zaprojektować bazę danych na zawody

Proponuje dwie tabele, zawodnik i zawody. Edycje zapisywane w tabeli zawody, edycja rozróżniana datą na przykład.

Mogę zaprojektować, jeśli to nie zadanie na zaliczenie do szkoły lub na studia.
Wojciech Janiszewski

Wojciech Janiszewski Instructor,
Zieleniec

Temat: Jak zaprojektować bazę danych na zawody

Witam,

Nie jest to zaliczenie, szkołę skończyłem 20 lat temu :)
Organizuję zawody narciarskie i sortowanie do tej pory robiłem w excelu ale sortowanie zaczyna być już uciążliwe bo mamy kilka kategorii a od tego roku jeszcze dzielimy to na grupy klubowicze i amatorzy tak więc pomyślałem o accessie, kiedyś w szkole trochę się nim bawiłem ale to było dawno i nie pamietem już tych relacji i kwerend.

Ogólnie założenie mam takie:

Tabela zawodników w której będą takie dane
- Nazwisko
- Imię
- Rok Urodzenia
- Amator czy Klubowicz (tu może być pole wyboru Tak/Nie)
- Jeżeli jest klubowiczem to nazwa klubu
- Kategoria (tu trzeba ustalić kategorię do której się kwalifikuje, albo wybrać ręcznie z listy rozwijanej albo automatycznie na podstawie rocznika). Poniżej kategorie wg regulaminu Pucharu
...
2. Uczestnicy Zawodów podzieleni są na 7 kategorii wiekowych:
a) Smerfy: rocznik 2009 roku i młodsze;
b) Skrzaty: rocznik 2007-2008;
c) Krasnale: rocznik 2005-2006;
d) Starsze Krasnale: rocznik 2002-2004;
e) Elfy: rocznik 1999-2001;
f) Open: rocznik 1998 i starsze.
...
- miejscowość

numer startowy wprowadzany będzie przed zawodami w czasie rejestracji i bedzie inny w każdej edycji

teraz tabela czasów

na zawodach bedą dwa przejazdy, czasy są sumowane i wg tej sumy sortowane są miejsca w każdej grupie osobno tj osobno w amatorach i osobno w klubowiczach i jeszcze osobno w swojej kategorii. Czyli jest np. tak - są I miejsce smerfów w klubie i I miejsce smerfów w klubowiczach.

Edycje myślałem żeby zrobić z pola wyboru podczas rejestracji i przydzielania numeru i zaznaczenia I edycja, II edycja, III edycja
sam nie wiem, może faktycznie po dacie, bo czasami mamy dodatkowe edycje.

Powiedz czy zaprojektowanie tego będzie bardzo pracochłonne?

Można by do tego jeszcze włączyć punktację miejsc i klasyfikację generalną z trzech edycji?

Pozdrawiam

PS: zacząłem robić taką bazę, mam tam dwie tabele bez relacji mogę podpiąć jak się przydaTen post został edytowany przez Autora dnia 14.01.15 o godzinie 19:25
Karol Kowalczyk

Karol Kowalczyk Programista, Marsh
Sp z o.o.

Temat: Jak zaprojektować bazę danych na zawody

Najpierw proponuję podbudowę teoretyczną:
http://pl.wikipedia.org/wiki/Normalizacja_bazy_danych
Co zazwyczaj robimy podczas pisania aplikacji:
1. Tworzymy opowieść na kartce tak jak Pan zrobił. Drukujemy, podkreślamy wszystkie rzeczowniki, spisujemy i usuwamy powtarzające się. To nam daje spis wszystkich niezbędnych pól.
2. Następnie grupujemy w tabele. Co oznacza, że np. 1 zawodnik ma 1 imię, 1 nazwisko i jedną datę urodzenia. Do każdej tabeli dodajemy kolumnę, która nazywamy klucz główny. Sugeruje aby to było pole Autonumer.
3. Następnie jak już mamy podzielone na tabele to staramy się stworzyć relację mówiąc że 1 zawodnik może uczestniczyć w wielu zawodach lub wielu zawodników może uczestniczyć w wielu zawodach.

Projekt bazy danych dla Pana to:
tabela: Zawodnicy
nazwa|typ
id|Autonumer
Nazwisko|text
Imię|text
Data urodzenia|data
Status|TAK/NIE-teoretycznie amator lub nie, ale tu pewny nie jestem, bo: 1 primo to powinno być w tabeli wyniki, 2 primo, jeżeli zawodnik nie należy do klubu to jest amatorem
tabela:ZAWODY
id|Autonumer
Nazwa_edycji|text
miejscowość|text
data_od|data
Data_do|data
Tabela : wyniki- nie jestem pewien ale ja jak bym robił dla siebie soft nazwałbym to zawodnicy_zawody (bo może się tak zdążyć że edycję mogą mieć zróżnicowaną ilość czasów) i info o czasie by wrzucił do innej tabeli ale tu upraszczam
id|Autonumer
id_zawodnicy|liczba
id_zawody|liczba
id_kategoria|liczba- bo kiedyś zawodnik teoretycznie może zmienić kategorię
id_klub|liczba-bo kiedyś zawodnik teoretycznie może zmienić klub
czas1|data/czas albo liczba podwójna(nigdy w accesie się nie bawiłem w takie zliczanie czasu a co mogło być najlepsze to sprawdzić przy programowaniu)
czas1|data/czas albo liczba podwójna
punkty|liczba
numer_startowy|text
tabela:klub
id|autonumer
nazwa|text
tabela:kategoria
id|autonumer
nazwa|text
wiek_od|liczba
wiek_do|liczba

Oczywiście jest pytanie czy to wszystko bo czasem może być potrzebne info że: opłata startowa wniesiona, nazwisko opiekuna, noclegi, wydane posiłki, zamówiony sprzęt, ubezpieczenie oraz jakaś historia, może jakiś kontakt?

To tak co się na szybko dało wymyślić...

Nie sądzę aby zaprojektowanie było pracochłonne dla fachowca ale trzeba sobie postawić pytanie co to ma robić. I jak podatne na zmiany formuły zawodów ma być.Ten post został edytowany przez Autora dnia 03.02.15 o godzinie 12:50
Karol Kowalczyk

Karol Kowalczyk Programista, Marsh
Sp z o.o.

Temat: Jak zaprojektować bazę danych na zawody

Jeszcze można zrobić kolumnę sezon w tabeli zawody lub dodatkową tabelę w relacji do tabeli sezon.Ten post został edytowany przez Autora dnia 03.02.15 o godzinie 12:51
Wojciech Janiszewski

Wojciech Janiszewski Instructor,
Zieleniec

Temat: Jak zaprojektować bazę danych na zawody

Dziękuję za sugestię i wskazówki
Działam.
pozdrawiam



Wyślij zaproszenie do