Jak podejść do projektu bazy danych.

0

Robię projekt bazy danych, praktycznie już skończony. Mam tylko problem. Mam klasę pracownik, ale uwzględnione musi być gdzieś w bazie w jakich godzinach w ciągu tygodnia przyjmuje i trzeba jakoś uwzględnić to, że inny pracownik np. szef może zmienić jego terminarz na trochę inny w danym tygodniu, albo przydzielić urlop.

Do głowy mi wpadło tylko przypięcie do tej encji relacją encję "termin pracy" Gdzie w przód dzień po dniu będą wyszczególnione jego godziny pracy, ale strasznie niewygodnie by się to z przyszłego programu przecież takim użytkownikom to obsługiwało. Macie jakiś inny pomysł?

0

W takich sytuacjach trzeba określić dodatkowe warunki, które mogą potencjalnie skomplikować projekt.
Czy czas pracy będzie zawsze ciągły od - do czy może być tak że dany pracownik w danym dniu przychodzi np na 10-12 i potem 16-20.
Czy potrzebujesz informacje historyczną na temat pracy ?

W najprostyszm przypadku , jeśli czas ciągły to dodatkowa relacja 1:1 z typowym dla danego pracownika tygodniowym czasem pracy - poniedziałek od-do, wtorek od-do etc. Potem dodatkowa tabela z czasem szczególnym - tu byś wrzucał wszystkie anomalie w stosunku do ustalonego czasu pracy i ta informacja byłaby precedensem nad informacją standardową.

Jesli potrzebujesz bardziej szczegółowy zakres, to można stworzyć mapę bitową jednostek czasowych dla każdego dnia dla każdego pracownika. Np godzinowe - 3 bytes (000000111111110000000000) Jest to o tyle wygodne że później można efektywnie za pomocą wyrażeń bitowych takie harmonogramy przeszukiwać / porónywać analizować zajętości czasu pracy etc..

0

Dzięki, ten pierwszy sposób wydaje się być ok, do moich potrzeb.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0