Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Plan zajeć (MySQL i operacje na datach)
piotras
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 8.07.2009

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


Witam,

zabieram się za aplikację, która będzie służyła do rezerwacji terminów zajęć. Zajęcia odbywają się cyklicznie i trwają przez okres 6 miesięcy.

Osoba zapisuje się na zajęcia w okreslonym dniu tygodnia i o określonej godzinie.

Mam w związku z tym 3 pytania:

1) Czy rejestrując nowego uczestnika zajęć w systemie lepiej w bazie trzymać informacje o wybranym przez niego dniu tygodnia i godziny, czy policzyć wszystkie daty, w ktorych ten dzień występuje) przez całe 6 miesięcy i tak zapisać to w dedykowanej do tego tabeli?

2) Który ze sposobów opisanych wyżej lepiej (łatwiej) nadaje się do sprawdzania kolizji terminów w trakcie rejestracji kolejnego uczestnika?

3) Czy MySQL ma jakąś funkcję, która sprawdza, czy dana data 'zawiera' się w wybranym przedziale czasowym?

Z góry dziękuję za pomoc.

Pozdr
Piotr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piotras
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 8.07.2009

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


hej

Trochę uprościłem pierwszego posta, żeby łatwiej wytłumaczyć.

W rzeczywistości wygląda to tak:

1. Uczestnik może zapisać się do danej grupy
2. Grupa ma określony poziom trudności, czas trwania i liczbę użytkowników
3. Grupa (a nie uczestnik) ma zdefiniowany rozkład zajęć (czyli wiązanie: uczestnik->grupa->kurs)

Czyli jak lepiej? Liczyć wszystkie daty, czy zdefiniować dla grupy dzień tygodnia, godzinę i czas trwania i sprawdzać to w locie?

Jeszcze jedno pytanie abstrahując od powyższego: Jeżeli sprawdzam kolizję zajęć (czy jedno nie nakłada się na drugie) lepiej mieć w bazie datetime rozpoczęcia zajęć i czas trwania, czy datetime rozpoczęcia i zakończenia? Sprawdzając (np funkcją between) chyba lepiej te drugie. Co myslicie?

Pozdrawiam
Piotrek


Cytat(Crozin @ 20.02.2013, 15:34:02 ) *
Bardzo często zdarza się, że przy wszelkiego rodzaju rozkładach jazdy, planach zajęć czy ogólnie harmonogramach jakieś pojedyncze zajęcia zostają przesunięte w czasie. Powodów dla tego typu przypadków jest cała masa, święta, niedyspozycyjność prowadzących, konflikt z innymi zajęciami itp. itd. Dlatego też sugerowałbym każde pojedyncze zajęcia zapisywać osobno, a nie jako "wydarzenie cykliczne".



Zajęcia z powodów technicznych nie mogą zostać przesunięte. Te zajęcia, ktore się nie odbyły dostają status 'do odrobienia'

Czy proponujesz policzyć np wszystkie czwartki o 17.00 i zapisać jako osobne rekordy w bazie?
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: 8.10.2025 - 01:33