Hola,
me parece haber visto antes el mismo post, bueno... en mi opinión deberías grabar un registro cada vez que un usuario "registra" su asistencia, ya sea salida o entrada. Cada registro en tu tabla deberá tener un flag que indique si es salida o entrada.
El resto ya va de parte de la lógica que le apliques, pero en líneas generales voy a tratar de explicarlo de manera como afrontaría esta situación:
- Se produce un registro de parte de un usuario, si no encuentro nada en ese día, entonces es una entrada.
- Se produce un nuevo registro del mismo usuario, si existe un registro el mismo día y si el último registro del usuario es entrada, entonces lo marco como salida
- Se produce un nuevo registro del usuario el mismo día, si el último registro del usuario es salida, entonces lo marco como entrada.
De esa manera, a mi parecer, puedes tener las entradas y salidas que desees durante un día.
Suerte