Informe Técnico de la Base de Datos

Proyecto: Sistema de Gestión de Rutas - ESSATUR SAS

Tabla de Contenidos

1. Introducción y Filosofía de Diseño

La base de datos del sistema ha sido diseñada siguiendo los principios de normalización (hasta la Tercera Forma Normal - 3NF) para garantizar la integridad de los datos, minimizar la redundancia y maximizar la flexibilidad y escalabilidad.

La estructura separa claramente las entidades de catálogo (datos de soporte como marcas, tipos, roles), las entidades principales (clientes, vehículos, conductores) y las entidades transaccionales (órdenes de servicio, FUECs), que representan el corazón operativo del sistema. El uso de claves foráneas (FOREIGN KEY) con restricciones de actualización y borrado (ON UPDATE CASCADE, ON DELETE SET NULL, ON DELETE CASCADE) asegura la consistencia referencial en toda la base de datos.

2. Diagrama Entidad-Relación (Conceptual)

El modelo se centra en la tabla ordenes_servicio como la entidad transaccional principal. Esta se relaciona con clientes, rutas, vehiculos y, a través de la tabla pivote orden_servicio_conductores, con múltiples conductores. A su vez, conductores y (opcionalmente) clientes se derivan de la tabla maestra usuarios. Finalmente, la tabla fuecs actúa como una formalización legal de una orden_servicio, manteniendo una relación uno a uno con ella.

3. Descripción Detallada de Tablas y Relaciones

3.1. Tablas de Catálogo y Usuarios

Estas tablas contienen datos fundamentales que raramente cambian y sobre los cuales se construye el resto del sistema.

roles
  • Propósito: Define los niveles de acceso y permisos dentro de la aplicación.
  • Relaciones: Es la tabla padre de usuarios.
usuarios
  • Propósito: Almacena la información de autenticación de toda persona que puede iniciar sesión. Es la tabla maestra de usuarios.
  • Relaciones: Actúa como tabla padre para conductores y clientes.
marcas_vehiculo y tipos_vehiculo
  • Propósito: Catálogos puros para estandarizar los datos de los vehículos y permitir filtros consistentes.
  • Relaciones: Son tablas padre de vehiculos.

3.2. Entidades Principales

Estas tablas representan los "activos" y "actores" principales de la empresa.

clientes
  • Propósito: Almacena la información fiscal y de contacto de quienes contratan los servicios.
  • Relaciones: Tiene una relación opcional uno a uno con usuarios para permitir el acceso al portal del cliente.
conductores
  • Propósito: Extiende la información de un usuario con datos específicos de su licencia y estado operativo.
  • Relaciones: Relación uno a uno obligatoria con usuarios. Un conductor siempre es un usuario.
vehiculos
  • Propósito: Mantiene el inventario completo de la flota de la empresa.
rutas
  • Propósito: Almacena trayectos predefinidos y reutilizables, con su tarifa asociada.

3.3. Entidades Transaccionales

Estas tablas registran las operaciones diarias del negocio.

ordenes_servicio
  • Propósito: Es la tabla transaccional central. Cada fila representa un servicio solicitado o prestado.
  • Relaciones: Se conecta con casi todo: clientes, rutas, vehículos y (a través de la tabla pivote) conductores.
orden_servicio_conductores
  • Propósito: Tabla de unión que resuelve la relación muchos a muchos entre órdenes y conductores, permitiendo asignar múltiples conductores a un servicio.
fuecs
  • Propósito: Almacena el registro legal de los FUECs generados, actuando como una formalización inmutable de una orden.
  • Relaciones: Relación uno a uno obligatoria con ordenes_servicio.
  • Campos de snapshot (JSON): Su característica más importante. Guardan una "foto" de los datos clave en el momento de la expedición para garantizar la integridad histórica del documento.

4. Conclusión

El diseño actual de la base de datos proporciona una base sólida y escalable para la aplicación. La normalización asegura la consistencia de los datos, mientras que el uso de relaciones explícitas y tablas de unión permite modelar con precisión las complejas interacciones del negocio de transporte especial. Esta estructura está preparada para soportar futuras funcionalidades, como la asignación de costos, la facturación y la generación de informes avanzados.