Sto lavorando sul modulo di rilevazione presenze e sono riuscito a leggere i dati dalla macchina di temporizzazione nel seguente formato:
Id      CheckIn            Type Status
0000142 5/15/2015 6:00 PM   2   OK
0000142 5/15/2015 2:00 PM   1   OK
0000142 5/15/2015 6:00 AM   1   OK
0000142 5/15/2015 3:00 PM   2   OK
 dove scrivi [   1 - stamped in , 2 - stamped out   ] 
Dovrei progettare una tabella per memorizzare queste voci tenendo in considerazione quanto segue
- Ogni dipendente deve prima inserire un pugno e poi dare un pugno
- Alcuni dipendenti hanno 2 turni al giorno: 09: 00-01: 00 e 17: 00-09: 00
- Alcuni dipendenti hanno un servizio notturno dalle 09:00 alle 09:00 (il servizio inizia ieri sera)
quello che sto pianificando e ho bisogno del tuo gentile consiglio è il seguente:
-  Per creare tabella   EmployeeCheckIn[Id,CheckIn,Type,Status]
-  Per creare un'altra tabella   ManipulatedEmployeeCheckIn[Id,FirstIn,FirstOut,SecondIn,SecondOut] doveFirstIneFirstOutè In e Out per il primo turno eSecondIneSecondOutsono In e Out per il secondo turno.
le mie domande
- Sto rompere la normalizzazione aggiungendo la seconda tabella?
- La seconda tabella conterrà molti valori NULL, si tratta di una cattiva progettazione?
- Come eliminare le voci multiple, ad esempio, alcuni dipendenti eseguiranno l'accesso due volte e usciranno 3 volte, quindi come rimuovere la duplicazione nelle voci ma con tempistiche diverse?
- Ultima domanda che è l'incubo di me, gli orari che iniziano questa sera e terminano domani mattina, come controllarli dal momento che non posso controllarli tramite il DateIn CheckIn
Se hai bisogno di ulteriori spiegazioni, sono pronto. Di te in anticipo