Dado que es MySql ya dejaré de contestar porque no sé mucho, al menos en Firebird puedes poner:
Código SQL
[-]
`Entrada` datetime NOT NULL default 'NOW'
NOW es una función que entiende, por tanto al crear un nuevo registro en la tabla usuarios (para que quede constancia de su entrada en el sistema), automáticamente se añade la fecha que tenga el servidor.
Id_usuario no puede ser clave primaria, ya que no permitiría la entrada de un mismo usuario dos veces.
En la tabla horarios, el id_usuario no puede ser un autoincrement, ya que se incrementaría automáticamente, y por tanto, no coincidiría con el verdadero código del usuario.
Yo puse clave primaria dos campos a la vez, el id_usuario y la fecha de entrada (ambos a la vez forman la clave primaria), ya que las dos cosas a la misma vez es imposible que ocurra, salvando una posible violación de clave primaria en la tabla.
Otra cosa: Si te fijas en esta línea:
Código SQL
[-] `User` varchar(10) NOT NULL default '',
UserName
"User" aparece en negrita, lo que quiere decir que es una palabra reservada de SQL, por tanto, al intentar acceder por SQL a ese campo te dará errores. Cambia el nombre del campo añadiendo una letra más. Acabo de hacer la prueba y "UserName" no lo detecta como palabra reservada.
Faltaría añadir los índices secundarios a los campos que vas a acceder constantemente, por ejemplo el nombre del usuario, que lo buscarás cada dos por tres en el login de tu sistema.
Saludos