What makes you think that I suggested creating a Task multiple times?
You want to know who worked on a Task, when and whether or not the Task was completed.
Since all people work on a task until it is completed; and since people can be scheduled/assigned Tasks;
you can know who is on what/next shift and what Task is currently active.
You could have 3 tables as shown below:
Code:
Person---------->WorkedOnTask<-----------------Task
John Apr 2/17 shift 1 incomplete TaskX
Bill Apr 2/17 shift 3 incomplete TaskX
Sam Apr 2/17 shift 3 incomplete TaskX
sally Apr 3/17 shift 2 incomplete TaskX
Ann Apr 3/17 shift 3 *Complete TaskX <=====Completed