📊 Diccionario de Datos

Modelo Normalizado - Sistema de Gestión de Laboratorios Analíticos (SYSLAB)

Generado el 05/09/2025 a las 20:39:03

24
Tablas Totales
258
Campos Totales
20
Relaciones
3NF
Forma Normal
📋 CAMPANA_EQUIPO
Junction Table
Equipos de trabajo asignados a campañas analíticas
Campo Tipo de Dato Restricciones Descripción
id_campana_equipo BIGINT
Clave PrimariaAutoincremental
Identificador único de la asignación
id_campana BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES campanias_analiticas(id_campania)
Referencia a la campaña analítica
id_usuario BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Referencia al usuario del equipo
id_perfil BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES perfiles_usuario(id_perfil)
Referencia al perfil del usuario en esta campaña
fecha_asignacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de asignación al equipo
fecha_inicio DATE
Fecha de inicio de participación
fecha_fin DATE
Fecha de fin de participación
observaciones TEXT
Observaciones sobre la participación
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la asignación está activa
📋 CAMPANA_PAQUETES
Junction Table
Paquetes analíticos y cantidades específicas por campaña
Campo Tipo de Dato Restricciones Descripción
id_campana_paquete BIGINT
Clave PrimariaAutoincremental
Identificador único de la relación
id_campania BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES campanias_analiticas(id_campania)
Campaña a la que pertenece
id_paquete BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES paquetes_analiticos(id_paquete)
Paquete analítico seleccionado
cantidad_planificada INT
Campo ObligatorioValidación - CHECK (cantidad_planificada > 0)
Cantidad planificada de muestras para este paquete
cantidad_real INT
Validación - CHECK (cantidad_real >= 0)
Cantidad real de muestras procesadas
precio_unitario DECIMAL(8,2)
Precio unitario acordado para esta campaña
costo_total_estimado DECIMAL(10,2)
Costo total estimado (cantidad_planificada * precio_unitario)
costo_total_real DECIMAL(10,2)
Costo total real (cantidad_real * precio_unitario)
fecha_asignacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de asignación del paquete a la campaña
fecha_confirmacion DATETIME
Fecha de confirmación de cantidades reales
observaciones TEXT
Observaciones sobre modificaciones de cantidades
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la asignación está activa
📋 PAQUETES_ANALITICOS
Lookup Table
Catálogo de paquetes analíticos disponibles
Campo Tipo de Dato Restricciones Descripción
id_paquete BIGINT
Clave PrimariaAutoincremental
Identificador único del paquete analítico
codigo_paquete VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del paquete
nombre_paquete VARCHAR(200)
Campo Obligatorio
Nombre del paquete analítico
descripcion TEXT
Descripción detallada del paquete
id_laboratorio BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES laboratorios(id_laboratorio)
Laboratorio que ofrece este paquete
precio_base DECIMAL(10,2)
Precio base del paquete
moneda VARCHAR(3)
Valor por Defecto - DEFAULT 'USD'
Moneda del precio
tiempo_estimado_dias INT
Tiempo estimado de análisis en días
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el paquete está activo
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de creación del registro
📋 PERFILES_USUARIO
Lookup Table
Catálogo de perfiles y roles de usuario del sistema
Campo Tipo de Dato Restricciones Descripción
id_perfil BIGINT
Clave PrimariaAutoincremental
Identificador único del perfil
codigo_perfil VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del perfil
nombre_perfil VARCHAR(100)
Campo Obligatorio
Nombre del perfil de usuario
descripcion TEXT
Descripción detallada del perfil y sus responsabilidades
nivel_acceso INT
Campo ObligatorioValidación - CHECK (nivel_acceso BETWEEN 1 AND 10)
Nivel de acceso del perfil (1=básico, 10=administrador)
puede_crear_proyectos BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si puede crear proyectos
puede_crear_campanias BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si puede crear campañas
puede_validar_resultados BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si puede validar resultados
puede_gestionar_usuarios BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si puede gestionar otros usuarios
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el perfil está activo
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de creación del registro
📋 PROYECTO_PAQUETES
Junction Table
Paquetes analíticos preseleccionados para proyectos
Campo Tipo de Dato Restricciones Descripción
id_proyecto_paquete BIGINT
Clave PrimariaAutoincremental
Identificador único de la relación
id_proyecto BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES proyectos(id_proyecto)
Proyecto al que pertenece
id_paquete BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES paquetes_analiticos(id_paquete)
Paquete analítico preseleccionado
precio_acordado DECIMAL(10,2)
Precio acordado para este proyecto
fecha_asignacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de asignación del paquete al proyecto
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la asignación está activa
📋 CAMPANIAS_ANALITICAS
Fact Table
Tabla principal que consolida el estado y datos de cada campaña analítica
Campo Tipo de Dato Restricciones Descripción
id_campania BIGINT
Clave PrimariaAutoincremental
Identificador único de la campaña
codigo_campania VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único de la campaña (formato: CAMP-YYYY-NNNN)
id_proyecto BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES proyectos(id_proyecto)
Referencia al proyecto al que pertenece la campaña
nombre_campania VARCHAR(200)
Campo Obligatorio
Nombre descriptivo de la campaña
descripcion TEXT
Descripción detallada de la campaña
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha y hora de creación de la campaña
fecha_inicio_planificada DATE
Fecha planificada de inicio de la campaña
fecha_fin_planificada DATE
Fecha planificada de finalización de la campaña
estado_general ENUM('Planificacion', 'En_Proceso', 'Completada', 'Cancelada', 'Suspendida')
Campo ObligatorioValor por Defecto - DEFAULT 'Planificacion'
Estado general actual de la campaña
etapa_actual_id INT
Clave Foránea - FOREIGN KEY REFERENCES etapas_proceso(id_etapa)
Etapa actual del proceso
porcentaje_completado DECIMAL(5,2)
Valor por Defecto - DEFAULT 0.00Validación - CHECK (porcentaje_completado >= 0 AND porcentaje_completado <= 100)
Porcentaje de completado de la campaña (0-100)
id_laboratorio BIGINT
Clave Foránea - FOREIGN KEY REFERENCES laboratorios(id_laboratorio)
Laboratorio asignado para la campaña
usuario_responsable_id BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario responsable actual de la campaña
usuario_creador_id BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario que creó la campaña
costo_estimado DECIMAL(12,2)
Costo estimado de la campaña
costo_real DECIMAL(12,2)
Costo real de la campaña
moneda VARCHAR(3)
Valor por Defecto - DEFAULT 'USD'
Moneda para los costos (ISO 4217)
observaciones TEXT
Observaciones generales de la campaña
fecha_ultima_actualizacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Fecha y hora de la última actualización
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el registro está activo
📋 CERTIFICACIONES
Dimension Table
Catálogo de certificaciones
Campo Tipo de Dato Restricciones Descripción
id_certificacion BIGINT
Clave PrimariaAutoincremental
Identificador único de la certificación
codigo_certificacion VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único de la certificación
nombre_certificacion VARCHAR(200)
Campo Obligatorio
Nombre de la certificación
organismo_certificador VARCHAR(200)
Organismo que otorga la certificación
descripcion TEXT
Descripción de la certificación
tipo_certificacion ENUM('ISO', 'Acreditacion', 'Licencia', 'Registro', 'Otro')
Campo Obligatorio
Tipo de certificación
vigencia_anos INT
Vigencia en años de la certificación
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la certificación está activa
📋 CLIENTES
Dimension Table
Información de clientes
Campo Tipo de Dato Restricciones Descripción
id_cliente BIGINT
Clave PrimariaAutoincremental
Identificador único del cliente
codigo_cliente VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del cliente
razon_social VARCHAR(200)
Campo Obligatorio
Razón social del cliente
nombre_comercial VARCHAR(200)
Nombre comercial del cliente
tipo_cliente ENUM('Empresa', 'Gobierno', 'ONG', 'Particular')
Campo Obligatorio
Tipo de cliente
rut_nit VARCHAR(20)
Valor Único
RUT o NIT del cliente
direccion TEXT
Dirección del cliente
ciudad VARCHAR(100)
Ciudad del cliente
pais VARCHAR(100)
País del cliente
telefono VARCHAR(20)
Teléfono principal
email VARCHAR(100)
Email principal
contacto_principal VARCHAR(200)
Nombre del contacto principal
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de creación del registro
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el registro está activo
📋 DOCUMENTOS_ADJUNTOS
Detail Table
Documentos adjuntos a las etapas de seguimiento
Campo Tipo de Dato Restricciones Descripción
id_documento BIGINT
Clave PrimariaAutoincremental
Identificador único del documento
id_seguimiento BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES seguimiento_etapas(id_seguimiento)
Referencia al seguimiento de etapa
id_tipo_documento BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES tipos_documento(id_tipo_documento)
Tipo de documento
nombre_archivo VARCHAR(255)
Campo Obligatorio
Nombre original del archivo
nombre_archivo_sistema VARCHAR(255)
Campo Obligatorio
Nombre del archivo en el sistema
ruta_archivo VARCHAR(500)
Campo Obligatorio
Ruta completa del archivo
url_acceso VARCHAR(500)
URL de acceso al documento
tamano_bytes BIGINT
Tamaño del archivo en bytes
extension VARCHAR(10)
Extensión del archivo
mime_type VARCHAR(100)
Tipo MIME del archivo
hash_archivo VARCHAR(64)
Hash SHA-256 del archivo para integridad
descripcion TEXT
Descripción del documento
es_publico BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si el documento es público
usuario_subida_id BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario que subió el documento
fecha_subida DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha y hora de subida del documento
version INT
Campo ObligatorioValor por Defecto - DEFAULT 1
Versión del documento
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el documento está activo
📋 ESPECIALIDADES_LABORATORIO
Dimension Table
Catálogo de especialidades de laboratorio
Campo Tipo de Dato Restricciones Descripción
id_especialidad BIGINT
Clave PrimariaAutoincremental
Identificador único de la especialidad
codigo_especialidad VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único de la especialidad
nombre_especialidad VARCHAR(200)
Campo Obligatorio
Nombre de la especialidad
descripcion TEXT
Descripción de la especialidad
categoria VARCHAR(100)
Categoría de la especialidad
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la especialidad está activa
📋 ETAPA_DATOS_ESPECIFICOS
Detail Table
Datos específicos variables por etapa de seguimiento
Campo Tipo de Dato Restricciones Descripción
id_dato_especifico BIGINT
Clave PrimariaAutoincremental
Identificador único del dato específico
id_seguimiento BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES seguimiento_etapas(id_seguimiento)
Referencia al seguimiento de etapa
nombre_campo VARCHAR(100)
Campo Obligatorio
Nombre del campo específico
etiqueta_campo VARCHAR(200)
Etiqueta legible del campo
tipo_dato ENUM('Texto', 'Numero', 'Fecha', 'Boolean', 'Decimal', 'Lista', 'Archivo')
Campo Obligatorio
Tipo de dato del campo
valor_texto TEXT
Valor cuando es tipo texto
valor_numerico BIGINT
Valor cuando es tipo numérico entero
valor_decimal DECIMAL(15,6)
Valor cuando es tipo decimal
valor_fecha DATETIME
Valor cuando es tipo fecha
valor_boolean BOOLEAN
Valor cuando es tipo boolean
unidad_medida VARCHAR(50)
Unidad de medida para valores numéricos
descripcion TEXT
Descripción del dato específico
es_obligatorio BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si el campo es obligatorio
orden_presentacion INT
Valor por Defecto - DEFAULT 1
Orden de presentación del campo
fecha_registro DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de registro del dato
usuario_registro_id BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario que registró el dato
📋 ETAPA_DEPENDENCIAS
Relationship Table
Dependencias entre etapas del proceso
Campo Tipo de Dato Restricciones Descripción
id_etapa_origen INT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES etapas_proceso(id_etapa)
Etapa que debe completarse primero
id_etapa_destino INT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES etapas_proceso(id_etapa)
Etapa que depende de la etapa origen
tipo_dependencia ENUM('Secuencial', 'Condicional', 'Paralela', 'Opcional')
Campo ObligatorioValor por Defecto - DEFAULT 'Secuencial'
Tipo de dependencia entre etapas
condicion TEXT
Condición específica para la dependencia
tiempo_espera_horas INT
Valor por Defecto - DEFAULT 0
Tiempo de espera en horas antes de iniciar la etapa destino
es_critica BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la dependencia es crítica
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la dependencia está activa
📋 ETAPA_DOCUMENTOS_REQUERIDOS
Relationship Table
Documentos requeridos por cada etapa del proceso
Campo Tipo de Dato Restricciones Descripción
id_etapa INT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES etapas_proceso(id_etapa)
Referencia a la etapa
id_tipo_documento BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES tipos_documento(id_tipo_documento)
Referencia al tipo de documento
es_obligatorio BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el documento es obligatorio para la etapa
orden_presentacion INT
Valor por Defecto - DEFAULT 1
Orden de presentación del documento
instrucciones TEXT
Instrucciones específicas para el documento
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el requerimiento está activo
📋 ETAPA_VALIDACIONES
Configuration Table
Reglas de validación por etapa del proceso
Campo Tipo de Dato Restricciones Descripción
id_validacion BIGINT
Clave PrimariaAutoincremental
Identificador único de la validación
id_etapa INT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES etapas_proceso(id_etapa)
Referencia a la etapa
nombre_validacion VARCHAR(200)
Campo Obligatorio
Nombre de la validación
descripcion TEXT
Descripción de la validación
tipo_validacion ENUM('Campo_Obligatorio', 'Formato', 'Rango', 'Dependencia', 'Negocio', 'Documento')
Campo Obligatorio
Tipo de validación
campo_objetivo VARCHAR(100)
Campo al que se aplica la validación
regla_validacion TEXT
Campo Obligatorio
Regla de validación en formato legible
expresion_validacion TEXT
Expresión técnica de validación (regex, SQL, etc.)
mensaje_error TEXT
Campo Obligatorio
Mensaje de error a mostrar
es_critica BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si la validación es crítica
orden_ejecucion INT
Valor por Defecto - DEFAULT 1
Orden de ejecución de la validación
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la validación está activa
📋 ETAPAS_PROCESO
Dimension Table
Definición de etapas del proceso
Campo Tipo de Dato Restricciones Descripción
id_etapa INT
Clave PrimariaAutoincremental
Identificador único de la etapa
numero_etapa INT
Campo ObligatorioValor Único
Número secuencial de la etapa
nombre_etapa VARCHAR(200)
Campo Obligatorio
Nombre de la etapa
descripcion TEXT
Descripción de la etapa
tipo_etapa ENUM('Planificacion', 'Ejecucion', 'Control', 'Cierre')
Campo Obligatorio
Tipo de etapa
es_obligatoria BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la etapa es obligatoria
permite_paralelo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si permite ejecución en paralelo
duracion_estimada_dias INT
Duración estimada en días
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la etapa está activa
📋 LABORATORIO_CERTIFICACIONES
Relationship Table
Relación muchos a muchos entre laboratorios y certificaciones
Campo Tipo de Dato Restricciones Descripción
id_laboratorio BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES laboratorios(id_laboratorio)
Referencia al laboratorio
id_certificacion BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES certificaciones(id_certificacion)
Referencia a la certificación
numero_certificado VARCHAR(100)
Número del certificado
fecha_obtencion DATE
Campo Obligatorio
Fecha de obtención de la certificación
fecha_vencimiento DATE
Fecha de vencimiento de la certificación
estado ENUM('Vigente', 'Vencida', 'Suspendida', 'Revocada')
Campo ObligatorioValor por Defecto - DEFAULT 'Vigente'
Estado de la certificación
archivo_certificado VARCHAR(500)
Ruta del archivo del certificado
fecha_registro DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de registro de la certificación
📋 LABORATORIO_ESPECIALIDADES
Relationship Table
Relación muchos a muchos entre laboratorios y especialidades
Campo Tipo de Dato Restricciones Descripción
id_laboratorio BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES laboratorios(id_laboratorio)
Referencia al laboratorio
id_especialidad BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES especialidades_laboratorio(id_especialidad)
Referencia a la especialidad
fecha_certificacion DATE
Fecha de certificación en la especialidad
fecha_vencimiento DATE
Fecha de vencimiento de la certificación
nivel_competencia ENUM('Basico', 'Intermedio', 'Avanzado', 'Experto')
Valor por Defecto - DEFAULT 'Basico'
Nivel de competencia en la especialidad
vigente BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la certificación está vigente
fecha_asignacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de asignación de la especialidad
📋 LABORATORIOS
Dimension Table
Información de laboratorios
Campo Tipo de Dato Restricciones Descripción
id_laboratorio BIGINT
Clave PrimariaAutoincremental
Identificador único del laboratorio
codigo_laboratorio VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del laboratorio
nombre_laboratorio VARCHAR(200)
Campo Obligatorio
Nombre del laboratorio
razon_social VARCHAR(200)
Razón social del laboratorio
rut_nit VARCHAR(20)
Valor Único
RUT o NIT del laboratorio
direccion TEXT
Dirección del laboratorio
ciudad VARCHAR(100)
Ciudad del laboratorio
pais VARCHAR(100)
País del laboratorio
telefono VARCHAR(20)
Teléfono principal
email VARCHAR(100)
Email principal
sitio_web VARCHAR(200)
Sitio web del laboratorio
contacto_principal VARCHAR(200)
Nombre del contacto principal
tiene_web_service BOOLEAN
Valor por Defecto - DEFAULT FALSE
Indica si el laboratorio tiene servicio web
url_web_service VARCHAR(500)
URL del servicio web
estado ENUM('Activo', 'Inactivo', 'Suspendido')
Campo ObligatorioValor por Defecto - DEFAULT 'Activo'
Estado del laboratorio
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de creación del registro
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el registro está activo
📋 PERMISOS_SISTEMA
Dimension Table
Catálogo de permisos del sistema
Campo Tipo de Dato Restricciones Descripción
id_permiso BIGINT
Clave PrimariaAutoincremental
Identificador único del permiso
codigo_permiso VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del permiso
nombre_permiso VARCHAR(200)
Campo Obligatorio
Nombre del permiso
descripcion TEXT
Descripción del permiso
modulo VARCHAR(100)
Campo Obligatorio
Módulo al que pertenece el permiso
accion ENUM('Crear', 'Leer', 'Actualizar', 'Eliminar', 'Ejecutar', 'Administrar')
Campo Obligatorio
Acción que permite el permiso
nivel_acceso ENUM('Basico', 'Intermedio', 'Avanzado', 'Administrador')
Campo ObligatorioValor por Defecto - DEFAULT 'Basico'
Nivel de acceso requerido
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el permiso está activo
📋 PROYECTOS
Dimension Table
Información de proyectos
Campo Tipo de Dato Restricciones Descripción
id_proyecto BIGINT
Clave PrimariaAutoincremental
Identificador único del proyecto
codigo_proyecto VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del proyecto
nombre_proyecto VARCHAR(200)
Campo Obligatorio
Nombre del proyecto
descripcion TEXT
Descripción del proyecto
id_cliente BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES clientes(id_cliente)
Cliente propietario del proyecto
fecha_inicio DATE
Fecha de inicio del proyecto
fecha_fin_estimada DATE
Fecha estimada de finalización
estado ENUM('Activo', 'Suspendido', 'Completado', 'Cancelado')
Campo ObligatorioValor por Defecto - DEFAULT 'Activo'
Estado actual del proyecto
presupuesto DECIMAL(12,2)
Presupuesto total del proyecto
moneda VARCHAR(3)
Valor por Defecto - DEFAULT 'USD'
Moneda del presupuesto
usuario_responsable_id BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario responsable del proyecto
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de creación del registro
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el registro está activo
📋 SEGUIMIENTO_ETAPAS
Fact Table
Seguimiento detallado del progreso de cada etapa por campaña
Campo Tipo de Dato Restricciones Descripción
id_seguimiento BIGINT
Clave PrimariaAutoincremental
Identificador único del seguimiento
id_campania BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES campanias_analiticas(id_campania)
Referencia a la campaña
id_etapa INT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES etapas_proceso(id_etapa)
Referencia a la etapa
numero_intento INT
Campo ObligatorioValor por Defecto - DEFAULT 1
Número de intento de la etapa
estado ENUM('Pendiente', 'En_Proceso', 'Completada', 'Bloqueada', 'Cancelada')
Campo ObligatorioValor por Defecto - DEFAULT 'Pendiente'
Estado actual de la etapa
fecha_inicio DATETIME
Fecha y hora de inicio de la etapa
fecha_fin DATETIME
Fecha y hora de finalización de la etapa
fecha_limite DATETIME
Fecha límite para completar la etapa
usuario_responsable_id BIGINT
Clave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario responsable de la etapa
usuario_ejecutor_id BIGINT
Clave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario que ejecuta la etapa
porcentaje_avance DECIMAL(5,2)
Valor por Defecto - DEFAULT 0.00Validación - CHECK (porcentaje_avance >= 0 AND porcentaje_avance <= 100)
Porcentaje de avance de la etapa
observaciones TEXT
Observaciones específicas de la etapa
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de creación del registro
fecha_actualizacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Fecha de última actualización
📋 TIPOS_DOCUMENTO
Dimension Table
Catálogo de tipos de documento
Campo Tipo de Dato Restricciones Descripción
id_tipo_documento BIGINT
Clave PrimariaAutoincremental
Identificador único del tipo de documento
codigo_tipo VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del tipo de documento
nombre_tipo VARCHAR(200)
Campo Obligatorio
Nombre del tipo de documento
descripcion TEXT
Descripción del tipo de documento
categoria ENUM('Evidencia', 'Reporte', 'Certificado', 'Solicitud', 'Resultado', 'Factura', 'Otro')
Campo Obligatorio
Categoría del documento
extension_permitida VARCHAR(200)
Extensiones de archivo permitidas (separadas por coma)
tamano_maximo_mb INT
Valor por Defecto - DEFAULT 10
Tamaño máximo permitido en MB
es_obligatorio BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT FALSE
Indica si el documento es obligatorio
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el tipo está activo
📋 USUARIO_PERMISOS
Relationship Table
Relación muchos a muchos entre usuarios y permisos
Campo Tipo de Dato Restricciones Descripción
id_usuario BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Referencia al usuario
id_permiso BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES permisos_sistema(id_permiso)
Referencia al permiso
fecha_asignacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de asignación del permiso
fecha_expiracion DATE
Fecha de expiración del permiso
asignado_por BIGINT
Campo ObligatorioClave Foránea - FOREIGN KEY REFERENCES usuarios(id_usuario)
Usuario que asignó el permiso
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si la asignación está activa
📋 USUARIOS
Dimension Table
Información de usuarios del sistema
Campo Tipo de Dato Restricciones Descripción
id_usuario BIGINT
Clave PrimariaAutoincremental
Identificador único del usuario
codigo_usuario VARCHAR(50)
Valor ÚnicoCampo Obligatorio
Código único del usuario
nombre_completo VARCHAR(200)
Campo Obligatorio
Nombre completo del usuario
email VARCHAR(100)
Valor ÚnicoCampo Obligatorio
Email del usuario
telefono VARCHAR(20)
Teléfono del usuario
cargo VARCHAR(100)
Cargo del usuario
departamento VARCHAR(100)
Departamento del usuario
fecha_ingreso DATE
Fecha de ingreso del usuario
estado ENUM('Activo', 'Inactivo', 'Suspendido')
Campo ObligatorioValor por Defecto - DEFAULT 'Activo'
Estado del usuario
fecha_ultimo_acceso DATETIME
Fecha del último acceso
fecha_creacion DATETIME
Campo ObligatorioValor por Defecto - DEFAULT CURRENT_TIMESTAMP
Fecha de creación del registro
activo BOOLEAN
Campo ObligatorioValor por Defecto - DEFAULT TRUE
Indica si el registro está activo
🔗 Relaciones entre Tablas
One To Many: proyectos → campanias_analiticas
Un proyecto puede tener múltiples campañas
One To Many: clientes → proyectos
Un cliente puede tener múltiples proyectos
One To Many: laboratorios → campanias_analiticas
Un laboratorio puede atender múltiples campañas
One To Many: campanias_analiticas → seguimiento_etapas
Una campaña tiene múltiples seguimientos de etapas
One To Many: etapas_proceso → seguimiento_etapas
Una etapa puede tener múltiples seguimientos
One To Many: seguimiento_etapas → documentos_adjuntos
Un seguimiento puede tener múltiples documentos
One To Many: seguimiento_etapas → etapa_datos_especificos
Un seguimiento puede tener múltiples datos específicos
Many To Many: laboratorios → especialidades_laboratorio
Relación muchos a muchos entre laboratorios y especialidades
Many To Many: laboratorios → certificaciones
Relación muchos a muchos entre laboratorios y certificaciones
Many To Many: usuarios → permisos_sistema
Relación muchos a muchos entre usuarios y permisos
Many To Many: etapas_proceso → tipos_documento
Relación muchos a muchos entre etapas y tipos de documento