De todas formas un campo "estado", no soluciona realmente el problema de la vida real en los hoteles a mi punto de ver.
Supongamos que el estado es "reservado", esto quiere decir que la habitación no se encuentra disponible, pero, para qué fecha?. Eso lo defines en la tabla reserva que tú mencionas. Pueden ser muchas reservas a futuro pero mientras tanto puedes alquilar o asignar una reserva para la habitación como máximo hasta la fecha de la primera reserva existente.
Creo además que necesitarías una tabla Entradas y Salidas del hospedado.
Por todo esto creo que la solución es que te preguntes:
Reservada, ¿Para cuándo?
Disponible, ¿Para cuándo?
Esto lo consultas cada vez que lo necesites mediante una consulta SQL y listo. El estado realmente no lo guardas.
Si te estoy entendiendo mal, me decís.
Saludos compañero