Ciao,

credo dovresti avere una tabella "anomalie" che registri id, codice, operatore, stato, inizio e fine tanto per iniziare. Poi a seconda dei dati disponibili nella tabella "diario" incrociare gli orari per estrarre i dati dell'operatore ed i tempi basandoti sul range di valore della tabella anomalie.

Rimane da capire come e se si devono associare gli operatori all'anomalia. Nel caso possano esserci piu' operatori responsabili della singola anomalia e la presenza di piu' anomalie, oppure se indistintamente l'anomalia e' da considerare a carico di tutti gli operatori presenti.

Come valore di data userei UNIX TIMESTAMP. Se ti appoggi sul diario i tempi vuoti si calcolano da loro stessi. Se devi identificare l'operatore che tocca l'anomalia aggiungi un record in anomalia