Przychodnia lekarska, jakakolwiek szkoła/kurs, fryzjer... w skrócie te wszystkie, do których umawia się na konkretne usługi na konkretne godziny.
Jeśli nie da się ustalić czasu długości wizyty, to cały problem nie istnieje, bo niemożliwe jest w takiej sytuacji stworzenie rezerwacji.
Szkoła, kurs nie wydaje mi się dobrym porównaniem, bo tam zapisuje się na konkretną jednostkę treningowa, która jest dostępna w konkretnych ramach czasowych, i nie mogę się wciskać w luki w harmonogramie, tylko działać w ramach ustalonych grafików.
Stworzenie rezerwacji na usługę nie może być procesem jednostronnym. W swoim przykładzie też podałeś że ktoś wykorzystuje 2 godziny, a ktoś inny jedną, ostateczną decyzje zawsze podejmuje właściciel/wykonawca harmonogramu. Rezerwacja terminu jest co najwyżej początkiem procesu. Przecież mój syn u fryzjera zajmuje 15 minut, żona czasem 2 i wiecej...
Ewentualnie można zamienić ten "czas trwania" w harmonogramie na złączenie z tabelą RodzajUsługi
, która będzie przechowywała informacje o czasie trwania różnego rodzaju usług, jeśli firma oferuje usługi wielu typów o różnych czasach trwania.
To wydaje się sensowne
Ok, można zrobić i tak - tylko po co w sumie ten minimalny czas trwania wtedy?
No i odbiję piłeczkę - jaki rodzaj usług wymaga czegoś takiego i na jakiej zasadzie precyzuje się ten czas trwania podczas umawiania klienta? I jak czas trwania usługi będzie ustalał użytkownik systemu, który tutaj projektujemy? (Bo jak rozumiem taka jest idea, żeby klienci sami siebie zapisywali.)
Minimalny czas trwania, jest po to aby w ciągu godziny nie zapisało mi się więcej osób w cyklach np. minutowych...
Co do odbicia piłeczki to bardziej chyba w stronę OP-a, ale dla mnie:
Właściciel harmonogramu, może dawać terminy jak mu się podoba, bo to w końcu on tym zarządza. Całe te harmonogramy to próba okiełznania ludzi wpisujących mu dane do tegoż i ma mu to ułatwić opanowanie tego. Stąd proponowane pole bitowe, terminzatwierdzony. Patrząc na niektóre tego typu usługi, widzę, ze wybiera się usługę, która ma zdefiniowany czas trwania i na jej podstawie ustawia się w harmonogramie okres. I to wydaje się ok, zakładając, że potrafimy zdefiniować nasze usługi.
Nie, nie mam. Po prostu między 8:00 a 12:00 dostępne są wizyty półgodzinne, między 14:00 a 18:00 wizyty godzinne, a między 12:00 a 14:00 jest przerwa.
No patrz, na to nie wpadłem, że mogą być przerwy... To analizując dalej brak też informacji od kiedy lub do kiedy dany harmonogram jest ważny, bo co w przypadku gdy chcemy zmienić godziny otwarcia? To pytanie do OP-a ;)