Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]konstrukcja optymalnej bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
Mikos
Witam,
próbuję stworzyć bazę danych z treningami dla pływaków. Wyglądałoby to mniej więcej tak:
PONIEDZIAŁEK
kraul 10 basenów
żabka 5 basenów
grzbiet 5 basenów
itd.

WTOREK
wolne

ŚRODA
kraul 5 basenów
itd.

Wszystkie dane(tzn. dni treningowe, styl pływacki, liczba basenów) pochodzą z bazy. Jeśli ktoś mógłby pokazać mi ideę optymalnej konstrukcji takiej bazy danych byłbym wdzięczny. Myślałem o stworzeniu 7 tabel(każda dla jednego dnia tygodnia), ale trudności pojawiają się, gdy jakiś trening w pierwszym tygodniu różni się od drugiego. Być może problem jest banalny, a ja nie mogę sobie z nim poradzić. Dzięki;)
Spawnm
zamiast pon , wtorek itp zapisuj całe daty .
czyli
jakaś tabela user z id, imie, nazwisko, mail, hasło
i tabela rozkład
user_id, data, trening/opis
Mikos
Nie rozumiem do końca, co masz na myśli. Dni tygodnia muszą być zawarte, bo wprowadzają logiczny porządek. Pozdrawiam
erix
Cytat
Dni tygodnia muszą być zawarte, bo wprowadzają logiczny porządek.

Ale z pola daty można jak najbardziej wyciągnąć dni tygodnia. Jest do tego odpowiednia funkcja operująca na znaczniku czasu, więc porządek jest.
Mikos
a jak sugerujecie powiązać dany styl z liczbą basenów?
SzamanGN
Jak dla mnie to może wyglądać to tak:
tabele:
- trenujący - dane trenującego;
- treningi - ustalone treningi dla trenujących, np.: kraul, żabka, gżbiet, itp;
- zadania_treningowe - dokładnie określone elementy treningowe;

W zadania_treningowe opisujemy zadania treningowe:
id, id trenującego, id treningu, ilość powtórzeń, termin treningu

Jeżeli chodzi o termin treningu, to musisz się zdecydować co przez to będzie rozumiane: dni tygodnia czy dzień treningu (jeżeli inny niż standardowy okres jak tydzień miesiąc, itp.).

Tak więc układanie planu treningu:
1. uzupełnienia tabeli treningi - podanie wszystkich rodzajów treningów;
2. dodanie trenujących;
3. wybranie trenującego;
4. wybranie treningu;
5. wybranie terminu treningu;
6. podanie ilości powtórzeń.
Mikos
Problem jest w tym, że na jeden trening składa się kilka dni w tygodniu. Przykładowo dni treningowe to poniedziałek, środa, piątek. Zatem muszę stworzyć w bazie pole dla każdego dnia treningowego, w obrębie jednego rekordu. Dodatkowo dochodzą do tego informacje o wykonywanych ćwiczeniach podczas dnia treningowego oraz liczbie powtórzeń dla każdego ćwiczenia. Robi się straszny zamęt. Myślałem, żeby ćwiczenia zapisywać w bazie w jednym polu w postaci: ćwi1 | ćwi2 | ćwi3, ale nie mam pojęcia jak w takim przypadku powiązać to z ilością wykonywanych powtórzeń. Wyglądałoby to tak, że w pierwszym polu byłyby ćwiczenia dla konkretnego dnia: ćwi1 | ćwi2 | ćwi3 a w drugim polu odpowiadające ilości powtórzeń: 10 | 10 | 5(czyli ćwiczenie pierwsze to 10 powt, itd).
erix
No to przecież możesz zrobić dwie tabele w relacji jeden-do-wielu...

Cytat
Zatem muszę stworzyć w bazie pole dla każdego dnia treningowego, w obrębie jednego rekordu.

Nie musisz. To odpowiedni SELECT będzie wszystko wyciągał.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.