En lo personal, aunque nose si sea lo mas optimo.
Dejaria un campo como Autoincrementable.
asi, no tendrias datos iguales y no te reclamaria por las PK.
Las horas y salidas, podrias dejarla como DATETIME.
y las controlas con converts para sacar las fechas y horas especificas si quieres.
EJ.
HEntrada = '01-12-2010 12:00:00'
Select convert(varchar(10),HEntrada,108) para la Hora...
Select convert(varchar(10),HEntrada,103) para las fechas...
Cita: CAMPO_AUTOINCREMENTABLE ID HEntrada HSalida
1 1234 '01-12-2010 12:00:00' '01-19-2010 12:00:00'
2 1234 '02-12-2010 12:10:00' ------------------------------
3 1234 '03-12-2010 12:05:00' ------------------------------
Separa las columnas... para que puedas visualisar mejor el ejemplo