# docs/database/ - Directorio de Trazabilidad de Base de Datos

**IMPORTANTE:** Este directorio fue deprecado. La trazabilidad de base de datos NO va aquí.

## ❌ Enfoque Incorrecto (Deprecado)

```
docs/database/
├── SCHEMA_NAME_TRACEABILITY.yml  ❌ NO crear archivos sueltos por schema
├── AUTH_TRACEABILITY.yml         ❌ Documentación sin referencias
└── CONTENT_MANAGEMENT_TRACEABILITY.yml ❌ No referenciado desde épicas
```

**Problema:** Archivos de trazabilidad sueltos que no están referenciados desde requerimientos/épicas.

---

## ✅ Enfoque Correcto

La trazabilidad de base de datos debe ir en **los archivos TRACEABILITY.yml de cada épica**, bajo:

```
docs/
├── 01-fase-alcance-inicial/
│   └── EAI-XXX-nombre/
│       └── implementacion/
│           └── TRACEABILITY.yml  ✅ Mapea objetos de BD aquí
│
├── 02-fase-robustecimiento/
│   └── EMR-XXX-nombre/
│       └── implementacion/
│           └── TRACEABILITY.yml  ✅ Mapea objetos de BD aquí
│
└── 03-fase-extensiones/
    └── EXT-XXX-nombre/
        └── implementacion/
            └── TRACEABILITY.yml  ✅ Mapea objetos de BD aquí
```

### Ejemplo: EXT-006 (Gestión de Contenido)

**Ubicación:** `docs/03-fase-extensiones/EXT-006-contenido/implementacion/TRACEABILITY.yml`

```yaml
epic_code: EXT-006
epic_name: CMS para Contenido Educativo

implementation:
  database:
    tables:
      - name: content_versions
        type: new
        description: Historial de versiones de contenido
        schema: content_management

      - name: content_approvals
        type: new
        description: Workflow de aprobación
        schema: content_management

  backend:
    module: content-management
    services:
      - content-version.service.ts
      - content-approval.service.ts

  frontend:
    components:
      - VersionHistory.tsx
      - ApprovalWorkflow.tsx
```

---

## 📋 Flujo de Trazabilidad Correcto

```
Requerimiento/Épica
    ↓
TRACEABILITY.yml de la épica
    ↓
Objetos de Base de Datos
    ↓
Backend (services, entities)
    ↓
Frontend (components)
```

### Beneficios de este enfoque:

1. **Trazabilidad clara:** Desde requerimiento hasta implementación
2. **Evita duplicación:** Antes de crear un objeto, verificar épicas existentes
3. **Documentación útil:** Referenciada y mantenida
4. **No documentación suelta:** Todo tiene propósito y referencias

---

## 📊 Inventarios (Ubicación Correcta)

Los inventarios globales de base de datos SÍ van en:

```
docs/90-transversal/inventarios-database/
├── inventarios/
│   ├── 01-SCHEMAS-INVENTORY.md       ✅ Inventario de schemas
│   ├── 02-TABLES-INVENTORY.md        ✅ Inventario de tablas
│   ├── 03-ENUMS-INVENTORY.md         ✅ Inventario de ENUMs
│   ├── 04-FUNCTIONS-INVENTORY.md     ✅ Inventario de funciones
│   ├── 05-TRIGGERS-INVENTORY.md      ✅ Inventario de triggers
│   └── INVENTORY-MASTER-REPORT.md    ✅ Reporte consolidado
│
├── DATABASE-PROJECT-README.md         ✅ Estado del proyecto de BD
└── TRACKING-CORRECCIONES.md           ✅ Tracking de correcciones
```

Y también en:

```
docs/90-transversal/inventarios/
├── DATABASE_INVENTORY.yml             ✅ Inventario consolidado
├── BACKEND_INVENTORY.yml              ✅ Inventario de backend
├── FRONTEND_INVENTORY.yml             ✅ Inventario de frontend
└── TRACEABILITY_MATRIX.yml            ✅ Matriz de trazabilidad
```

---

## 🎯 Uso de Este Directorio

Este directorio `docs/database/` puede usarse OPCIONALMENTE para:

1. **Documentación técnica complementaria** (si tiene sentido)
2. **ADRs específicos de base de datos** (decisiones arquitectónicas)
3. **Guías de diseño de schema** (estándares, patrones)

Pero **NO** para:
- ❌ Archivos de trazabilidad por schema
- ❌ Documentación que duplica TRACEABILITY.yml de épicas
- ❌ Inventarios (van en docs/90-transversal/)

---

## 🔧 Archivos Deprecados

Los siguientes archivos fueron movidos a `.deprecated` porque no están referenciados desde épicas:

- `CONTENT_MANAGEMENT_TRACEABILITY.yml.deprecated` - No referenciado
- `AUTH_TRACEABILITY.yml` - Eliminado (no tenía propósito)

Si necesitas información de estos archivos, migra el contenido útil a los TRACEABILITY.yml correspondientes de las épicas.

---

## 📚 Recursos

- **Guía de trazabilidad:** `docs/95-guias-desarrollo/GUIA-TRAZABILIDAD.md` (por crear)
- **Ejemplo completo:** `docs/03-fase-extensiones/EXT-006-contenido/implementacion/TRACEABILITY.yml`
- **Inventarios:** `docs/90-transversal/inventarios-database/`
- **Sistema SIMCO:** `docs/97-adr/ADR-0002-simco-system.md`

---

**Última actualización:** 2025-11-11
**Motivo:** Corrección de estructura de documentación - Trazabilidad debe ir en épicas, no en archivos sueltos
