Dove devo inserire i dati relativi a più di un'entità?

0

In questo momento ho progettato Ora e amp; Sistema di presenze .

Se ho le seguenti entità:

  • Shift (Id,Name,start_time,end_time, ...etc)

EX: 1,Morning,08:00,16:00

  • WorkSchedule (Id,Name,Type,...etc)

EX: 1,General,1

Dove Type può essere ( Traditional,Daily Flexible Hours ,Weekly Flexible Hours )

E WorkSchedule ha dettagli usando Shift come questo:

Day   Shift      Weekend

Sa       1           1
Su       1           0
Mo       1           0
Tu       1           0
We       1           0
Th       1           0
Fr       1           1

Ora Se voglio aggiungere Core Hours per il tipo flessibile, dove dovrei specificare start time and the end time per Core Hours ? in Shift Entità o in WorkSchedule Entità o qualcos'altro?

    
posta Anyname Donotcare 06.02.2017 - 14:19
fonte

2 risposte

2

Un modo per modellare questo sarebbe creare il tipo FlexibleWorkSchedule che deriva da WorkSchedule e inserire le ore di base in questo.

Esistono già molte risorse online che spiegano come modellare l'ereditarietà in un database relazionale. Un modo in cui ho visto implica l'aggiunta di una tabella per ogni sottotipo e ogni istanza del sottotipo ha quindi un record nella tabella del sottotipo e della tabella del supertipo con corrispondente alla chiave primaria .

    
risposta data 06.02.2017 - 14:50
fonte
2

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.

    
risposta data 06.02.2017 - 18:22
fonte