# ADR-007: Database Design Multi-Schema **Estado:** Aceptada **Fecha:** 2025-11-24 **Responsable:** Architecture-Analyst **Proyecto:** ERP Construccion ## Contexto La base de datos debe organizar datos de construccion de manera: - Escalable y mantenible - Compatible con ERP Generico - Optimizada para consultas de proyectos/obras - Con extension para dominios especificos (INFONAVIT, estimaciones) ## Decision **Multi-Schema Design** con schemas por dominio funcional: ``` database/ddl/ +-- 01-auth.sql # Autenticacion (GENERICO) +-- 02-core.sql # Catalogos maestros (GENERICO) +-- 03-projects.sql # Proyectos base (GENERICO) + extensiones +-- 04-financial.sql # Financiero (GENERICO) +-- 05-inventory.sql # Inventario (GENERICO) +-- 06-purchase.sql # Compras (GENERICO) +-- 07-sales.sql # Ventas (GENERICO) +-- 08-analytics.sql # Analitica (GENERICO) +-- 09-construction.sql # ESPECIFICO: Obra, avances, APUs +-- 10-infonavit.sql # ESPECIFICO: INFONAVIT, derechohabientes +-- 11-estimates.sql # ESPECIFICO: Estimaciones, facturacion obra ``` **Schemas especificos de construccion:** - `construction_management`: Fraccionamientos, manzanas, lotes, prototipos - `infonavit_compliance`: Derechohabientes, actas, cumplimiento - `estimates_management`: Estimaciones, anticipos, retenciones ## Justificacion ### Referencia a Gamilit - Organizacion por dominio funcional - Permisos por schema ### Alineacion con ERP Generico - Schemas 01-08 reutilizados (61%) - Schemas 09-11 especificos de construccion ### Especifico para Construccion - Tablas de fraccionamientos con relaciones jerarquicas - Tablas INFONAVIT separadas para auditorias - PostGIS para ubicaciones de obras ## Consecuencias ### Positivas - Organizacion logica +80% - Permisos granulares por schema - Reutilizacion de schemas genericos - Mantenibilidad +50% ### Negativas - Complejidad en joins cross-schema - Mitigacion: Vistas materializadas para reportes ## Implementacion ### Acciones Requeridas - [ ] Crear DDL para schemas 09-11 (construccion) - [ ] Configurar indices para queries de proyectos - [ ] Implementar vistas para reportes INFONAVIT - [ ] PostGIS para georreferenciacion ### Criterios de Aceptacion - Schemas genericos compatibles con ERP Generico - Schemas especificos aislados - Performance de queries < 100ms para dashboards ## Referencias - [ERP Generico ADR-007](../../erp-generic/docs/adr/ADR-007-database-design.md) - [Gamilit Database Architecture](../../shared/reference/gamilit/database-architecture.md)