Campo que no admita negativos
Publicado por Diego (10 intervenciones) el 15/08/2018 00:35:19
Buenas tardes.
Quisiera saber si existe alguna manera de restringir un campo para que no admita negativos. Pero directamente en la base, sin verificar antes que sea mayor a 0.
El tema es el siguiente, yo envío una consulta que resta 1 a un campo de tipo INT determinado, pero quiero que si el contenido es 0 no ejecute la consulta, pero el tipo de campo INT admite negativos.
El problema que tengo, para que les quede mas claro.... Es un sistema de reservas hoteleras. El usuario selecciona el rango de fechas y el sistema devuelve las habitaciones que hay disponibles en ese lapso. Luego selecciona la habitacion, luego la forma de pago y luego completa sus datos. Al procesar la reserva lo primero que se hace es restar la disponibilidad del tipo de habitacion seleccionada en las fechas indicadas. Y el problema radica en que en el lapso de tiempo entre que carga las fechas y termina el proceso hay uno o dos minutos dependiendo de la velocidad con la que ingrese sus datos, y esto puede ocasionar que si dos personas coinciden en el tipo de habitación y mientras uno está cargando sus datos el otro pide disponibilidad en fechas que se "pisen", el primero tendrá la reserva confirmada y el que ingresó luego podría generar una sobreventa.
Yo ya lo solucioné en la versión anterior volviendo a chequear la dispo justo antes de generar la reserva, pero la idea es optimizar el proceso y que no haga dos veces lo mismo.
Como no soy un experto en MySQL quería saber si existe la opción de indicarle a la base que un campo no admite valores por debajo de cero y que si tiene que realizar una consulta que genere esto directamente no lo procese o devuelva un error.
Muchas gracias !
Quisiera saber si existe alguna manera de restringir un campo para que no admita negativos. Pero directamente en la base, sin verificar antes que sea mayor a 0.
El tema es el siguiente, yo envío una consulta que resta 1 a un campo de tipo INT determinado, pero quiero que si el contenido es 0 no ejecute la consulta, pero el tipo de campo INT admite negativos.
El problema que tengo, para que les quede mas claro.... Es un sistema de reservas hoteleras. El usuario selecciona el rango de fechas y el sistema devuelve las habitaciones que hay disponibles en ese lapso. Luego selecciona la habitacion, luego la forma de pago y luego completa sus datos. Al procesar la reserva lo primero que se hace es restar la disponibilidad del tipo de habitacion seleccionada en las fechas indicadas. Y el problema radica en que en el lapso de tiempo entre que carga las fechas y termina el proceso hay uno o dos minutos dependiendo de la velocidad con la que ingrese sus datos, y esto puede ocasionar que si dos personas coinciden en el tipo de habitación y mientras uno está cargando sus datos el otro pide disponibilidad en fechas que se "pisen", el primero tendrá la reserva confirmada y el que ingresó luego podría generar una sobreventa.
Yo ya lo solucioné en la versión anterior volviendo a chequear la dispo justo antes de generar la reserva, pero la idea es optimizar el proceso y que no haga dos veces lo mismo.
Como no soy un experto en MySQL quería saber si existe la opción de indicarle a la base que un campo no admite valores por debajo de cero y que si tiene que realizar una consulta que genere esto directamente no lo procese o devuelva un error.
Muchas gracias !
Valora esta pregunta
0