workspace-v1/projects/erp-construccion/docs/97-adr/ADR-007-database-design.md
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

83 lines
2.5 KiB
Markdown

# 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)