Modelo de Base de Datos – Gestión Integral de Reservas Turísticas
1. Objetivo
Automatizar las operaciones diarias de la agencia —desde la toma de reservas hasta la generación de
reportes— permitiendo al administrador supervisar, escalar y optimizar el negocio sin tareas manuales repetitivas.
El modelo concentra toda la información crítica (clientes, ventas, personal y logística) y la deja lista para integrarse
con pasarelas de pago y portales de venta externos.
2. Descripción general del modelo
Tabla Propósito (resumen)
reservas Registro maestro de cada venta: fechas, pasajeros, precios, cupon,hotel.
titulares Datos de contacto del cliente que efectúa la reserva.
experiencias Catálogo de tours (Valparaíso, Isla de Maipo, Andes y Santiago) .
hoteles Más de 5000 hoteles para logística de recogida y entrega.
guías Información de los guías turísticos disponibles.
conductores Información de los conductores y vehículos.
vendedores Canales o agentes de venta propios y externos.
cupones Descuentos vinculados a vendedores para campañas y seguimiento.
3. Ventajas clave del modelo
• Modularidad para integraciones externas (pasarelas de pago, OTAs, PMS) sin rediseñar la base.
• Trazabilidad extremo a extremo de cada reserva: cliente, tour, hotel, guía, conductor y canal de venta.
• Capacidad analítica mediante consultas SQL para informes operativos y financieros (ventas por vendedor,
jornadas trabajadas, ajustes dinámicos de precios y ubicaciones de recogida, etc.).
• Escalabilidad y mantenimiento sencillo gracias a la estructura normalizada y claves foráneas.
4. Implementación Web del Sistema Integral de Reservas
El modelo de base de datos presentado se complementa con una interfaz web moderna, intuitiva y totalmente
responsiva, diseñada especialmente para facilitar la gestión operativa diaria. Esta plataforma digital permite a los
clientes reservar servicios turísticos desde cualquier dispositivo (computadora, tablet o móvil), con integración directa
a una pasarela de pagos ya implementada, que automatiza las transacciones de forma segura y efectiva. Asimismo,
la solución conecta directamente con la base de datos del sistema, permitiendo la actualización inmediata de
reservas, generación dinámica de reportes e interacción fluida con todos los módulos descritos, garantizando
eficiencia, confiabilidad y una experiencia óptima tanto para clientes como para el equipo administrativo.
5. Descripción técnica de tablas
reservas (PK: id_reserva)
Campo Tipo Descripción / Observaciones
id_reserva INT Identificador único de la reserva (PK, AI)
codigo_externo VARCHAR(100) Código de referencia externo (opcional)
fecha_reserva DATE Fecha en que se registra la reserva
fecha_actividad DATE Fecha programada de la actividad
adultos INT Número de pasajeros adultos
ninos INT Número de niños
infantes INT Número de infantes
airport_pickup TINYINT(1) Indicador de servicio de recogida en aeropuerto
pais_origen VARCHAR(100) País de origen del cliente
idioma_actividad VARCHAR(100) Idioma solicitado para el tour
subtotal DECIMAL(10,2) Importe antes de descuentos
total_venta DECIMAL(10,2) Importe final después de descuentos
estado ENUM Estado del servicio y pago
id_cupon INT FK → cupones.id_cupon
id_titular INT FK → titulares.id_titular
id_hotel INT FK → hoteles.id_hotel
id_guia INT FK → guias.id_guia
id_conductor INT FK → conductores.id_conductor
id_vendedor INT FK → vendedores.id_vendedor
id_experiencia INT FK → experiencias.id_experiencia
titulares (PK: id_titular)
Campo Tipo Descripción / Observaciones
id_titular INT Identificador del cliente (PK, AI)
nombre VARCHAR(255) Nombre(s)
apellido VARCHAR(255) Apellido(s)
telefono VARCHAR(50) Teléfono (opcional)
email VARCHAR(255) Correo electrónico
experiencias (PK: id_experiencia)
Campo Tipo Descripción / Observaciones
id_experiencia INT Identificador del tour (PK, AI)
nombre VARCHAR(100) Nombre del tour
precio_adulto DECIMAL(10,2) Precio por pasajero adulto
precio_nino DECIMAL(10,2) Precio por pasajero niño
precio_infante DECIMAL(10,2) Precio por pasajero infante
hoteles (PK: id_hotel)
Campo Tipo Descripción / Observaciones
id_hotel INT Identificador del hotel (PK, AI)
nombre_hotel VARCHAR(255) Nombre del hotel
direccion TEXT Dirección completa
comuna VARCHAR(100) Comuna o barrio
guías (PK: id_guia)
Campo Tipo Descripción / Observaciones
id_guia INT Identificador del guía (PK, AI)
nombre_guia VARCHAR(255) Nombre del guía
telefono VARCHAR(50) Teléfono (opcional)
email VARCHAR(255) Correo electrónico (opcional)
conductores (PK: id_conductor)
Campo Tipo Descripción / Observaciones
id_conductor INT Identificador del conductor (PK, AI)
nombre_conductor VARCHAR(255) Nombre del conductor
telefono VARCHAR(50) Teléfono (opcional)
email VARCHAR(255) Correo electrónico (opcional)
vendedores (PK: id_vendedor)
Campo Tipo Descripción / Observaciones
id_vendedor INT Identificador del vendedor (PK, AI)
nombre_vendedor VARCHAR(255) Nombre del vendedor o canal
canal_venta VARCHAR(100) Tipo de canal (Web, Instagram, Agencia, etc.)
telefono VARCHAR(50) Teléfono (opcional)
email VARCHAR(255) Correo electrónico (opcional)
cupones (PK: id_cupon)
Campo Tipo Descripción / Observaciones
id_cupon INT Identificador del cupón (PK, AI)
nombre VARCHAR(50) Código del cupón (único)
id_vendedor INT FK → vendedores.id_vendedor
porcentaje INT Porcentaje de descuento