Diseñando la Base de Datos para un Sistema de Reservas de Hotel

 Diseñando la Base de Datos para un Sistema de Reservas de Hotel

¡Bienvenidos a esta nueva sección del curso donde nos enfocaremos en el gestor de reservas! Lo primero que debemos organizar es la estructura de la tabla en la base de datos. Definir esto desde el principio es fundamental para evitar correcciones posteriores en la estructura.

Estructura de la Tabla de Reservas

Para gestionar las reservas, necesitamos una tabla bien definida. Aquí están las columnas esenciales:

  1. ID → Clave primaria autoincremental (siempre presente).

  2. ID_habitacion → Relación con la tabla de habitaciones.

  3. ID_usuario → Relación con la tabla de usuarios (el cliente debe estar registrado).

  4. Pago_reserva → Monto pagado (puede incluir decimales).

  5. Codigo_reserva → Código alfanumérico único para identificar la reserva.

  6. Descripcion_reserva → Detalle de lo que incluye (ej: "Suite Retro con Plan SPA para 5 personas").

  7. Fecha_ingreso → Fecha de check-in.

  8. Fecha_salida → Fecha de check-out.

  9. Fecha_reserva → Fecha en que se registró la reserva (puede ser un timestamp automático).

Ejemplo de Creación de la Tabla en SQL

sql
Copy
Download
CREATE TABLE reservas (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    ID_habitacion INT NOT NULL,
    ID_usuario INT NOT NULL,
    Pago_reserva DECIMAL(10, 2),
    Codigo_reserva VARCHAR(20),
    Descripcion_reserva TEXT,
    Fecha_ingreso DATE,
    Fecha_salida DATE,
    Fecha_reserva TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (ID_habitacion) REFERENCES habitaciones(ID),
    FOREIGN KEY (ID_usuario) REFERENCES usuarios(ID)
);

Relación con Otras Tablas

Es importante establecer las relaciones correctas:

  • ID_habitacion → Se relaciona con la tabla habitaciones.

  • ID_usuario → Se relaciona con la tabla usuarios.

sql
Copy
Download
-- Ejemplo de inserción de datos de prueba
INSERT INTO reservas (
    ID_habitacion, 
    ID_usuario, 
    Pago_reserva, 
    Codigo_reserva, 
    Descripcion_reserva, 
    Fecha_ingreso, 
    Fecha_salida
) VALUES (
    1, 
    1, 
    300000.00, 
    'RES-ABC123', 
    'Habitación Suite Oriental con Plan SPA para 5 personas', 
    '2025-04-12', 
    '2025-04-14'
);

¿Por Qué Esta Estructura?

✔ Evita duplicación de datos → Usamos IDs de tablas relacionadas.
✔ Facilita búsquedas → El código de reserva ayuda a identificar rápidamente una reserva.
✔ Registra fechas clave → Sabemos cuándo se hizo la reserva, cuándo ingresa el cliente y cuándo sale.

Próximos Pasos

En la próxima clase, implementaremos el código para:

✅ Validar disponibilidad de habitaciones antes de permitir una reserva.
✅ Generar códigos de reserva únicos automáticamente.
✅ Mostrar reservas activas en el panel de administración.

¿Qué otras funcionalidades te gustaría ver en el gestor de reservas? ¡Déjalo en los comentarios! 

Comentarios

Entradas más populares de este blog

37. Enviando datos de la reserva - parte 1

40-pintar con php

42. Validar cruce de fechas - parte 1