Sono d'accordo con @MetaFight.
Tuttavia, potresti avere una certa confusione che potrebbe andare a una discussione di concetti e relazioni e cosa varia con cosa.
La nozione di ore centrali è che è qualcosa di pubblicato / annunciato dalla direzione in anticipo e che (le ore centrali) sono fisse / costanti tra i dipendenti (nella stessa categoria). Pertanto, le ore di core non variano con la partecipazione di un singolo dipendente .
La partecipazione di un individuo può essere classificata / valutata rispetto all'orario di core pubblicato, che è una questione separata (dall'esistenza delle ore di core).
Quindi, per rispondere alla tua domanda, ci chiederemmo, con che cosa variano le ore centrali? Frequenza o con WorkSchedule (assumendo che siano le uniche due scelte).
E la risposta non è certamente la partecipazione. Quindi (supponendo di dover scegliere tra i due), deve essere WorkSchedule.
Ora come @MetaFight indica, non tutti i tipi di WorkSchedule sono necessariamente uguali. Alcuni hanno orari fissi, altri hanno ore centrali. Ci sono anche molte altre potenziali proprietà di diversi WorkSchedule. Ad esempio, anche quelli con ore di core hanno probabilmente un conteggio totale delle ore, poiché le ore di core sono in genere più brevi delle ore di lavoro previste per un giorno.
@MetaFight suggerisce di modellare i diversi WorkSchedule come sottoclassi e mapparli / applicarli alla modellazione del database.
Un'altra possibilità è quella di modellare le ore di core e il conteggio delle ore totali per i tipi di WorkSchedule fissi e flessibili, che tendono a unificare i concetti.
Ci sarebbero solo le ore di inizio delle ore di core, le ore di core-end e il conteggio totale delle ore diurne (potremmo anche modellarle come ore di inizio delle ore di core, durata delle ore di core, ore supplementari previste).
Per le pianificazioni fisse, le ore di core si sommano al conteggio totale del giorno lavorativo, e quindi l'inizio delle ore di core è solo l'inizio regolare e l'orario delle ore di core è solo la fine regolare. Il conteggio è semplicemente fine meno inizio, (o ore supplementari-previsto è 0) in quanto non ci sono ore extra previste da un dipendente in base a un orario fisso.
Per le pianificazioni flessibili, le ore di core non sommano il conteggio totale del giorno lavorativo, quindi il totale previsto è ancora, forse, 8 o, in altre parole, sono previste ore aggiuntive.
Vorrei inserire le ore nella struttura del turno, qualcosa come
Id,
min start day, min start time,
max start day, max start time,
core hours count,
flex hours count
Il programma si compone con una serie di turni.
Ciò consentirà sia turni fissi che flessibili, così come turni diurni e notturni.