Add Oracle component and DATABASE_SPEC
- Add oracle.md: Complete specification for Oracle (prospectiva) - Puerto 5055, Capa 2 análisis prospectivo - 7 secciones del análisis, 10 reglas O-* - Integración con Grace, métricas calibración - Add DATABASE_SPEC.md: Schema v2.1 with Oracle tables - oracle_analisis, oracle_escenario - Total: 28 tables Synced from R2 skynet v10.1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
450
03_MODELO_DATOS/DATABASE_SPEC.md
Normal file
450
03_MODELO_DATOS/DATABASE_SPEC.md
Normal file
@@ -0,0 +1,450 @@
|
||||
# TZZR - Especificación de Base de Datos
|
||||
|
||||
**Versión:** 2.1
|
||||
**Fecha:** 6 Enero 2026
|
||||
**Estado:** Actualizado
|
||||
|
||||
---
|
||||
|
||||
## 1. Estructura de Tablas Principales
|
||||
|
||||
### 1.1 Esquema Completo
|
||||
|
||||
| hst | flg | ply | itm | loc | mst | bck | mth |
|
||||
|-----|-----|-----|-----|-----|-----|-----|-----|
|
||||
| num | num | num | num | num | num | num | num |
|
||||
| alias | alias | alias | alias | alias | alias | alias | alias |
|
||||
| ref | ref | ref | ref | ref | ref | ref | ref |
|
||||
| mrf | mrf | mrf | mrf | mrf | mrf | mrf | mrf |
|
||||
| private_mrf | private_mrf | private_mrf | private_mrf | private_mrf | private_mrf | private_mrf | private_mrf |
|
||||
| name_es | name_es | name_es | name_es | name_es | name_es | name_es | name_es |
|
||||
| name_en | name_en | name_en | name_en | name_en | name_en | name_en | name_en |
|
||||
| name_ch | name_ch | name_ch | name_ch | name_ch | name_ch | name_ch | name_ch |
|
||||
| group | group | group | - | - | - | - | - |
|
||||
| - | - | - | set_hst | set_hst | set_hst | set_hst | set_hst |
|
||||
| - | - | - | - | - | link_mst | link_mst | - |
|
||||
| - | - | - | - | - | link_bck | link_bck | - |
|
||||
| txt | txt | txt | txt | txt | txt | txt | txt |
|
||||
| - | - | hashtags | hashtags | hashtags | hashtags | hashtags | hashtags |
|
||||
| standard_md | standard_md | - | - | - | - | - | - |
|
||||
| - | - | standard_data | standard_data | standard_data | standard_data | standard_data | standard_data |
|
||||
| jsonb_standard | jsonb_standard | - | - | - | - | - | - |
|
||||
| - | - | jsonb_data | jsonb_data | jsonb_data | jsonb_data | jsonb_data | jsonb_data |
|
||||
| version | version | version | version | version | version | version | version |
|
||||
| rootref | rootref | rootref | rootref | rootref | rootref | rootref | rootref |
|
||||
| roothash | roothash | roothash | roothash | roothash | roothash | roothash | roothash |
|
||||
| img_url | img_url | img_url | img_url | img_url | img_url | img_url | img_url |
|
||||
| img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url | img_thumb_url |
|
||||
| owner | owner | owner | owner | owner | owner | owner | owner |
|
||||
| - | - | set_flg | set_flg | set_flg | set_flg | set_flg | set_flg |
|
||||
| url | url | url | url | url | - | - | - |
|
||||
| - | - | - | url_atc | - | url_atc | url_atc | url_atc |
|
||||
| url_json | url_json | url_json | url_json | url_json | url_json | url_json | url_json |
|
||||
| date | date | date | date | date | date | date | date |
|
||||
| created_at | created_at | created_at | created_at | created_at | created_at | created_at | created_at |
|
||||
| - | - | - | - | - | mth_mrf | mth_mrf | - |
|
||||
|
||||
---
|
||||
|
||||
## 2. Clasificación de Tablas
|
||||
|
||||
| Tipo | Tablas | Descripción |
|
||||
|------|--------|-------------|
|
||||
| Etiquetado semántico | hst, flg | Vocabulario controlado, trazabilidad |
|
||||
| Entidades de negocio | ply, itm, loc | Actores, productos, ubicaciones |
|
||||
| Gestión de procesos | mst, bck, mth | Burocracia, evidencia real, métodos |
|
||||
|
||||
### 2.1 Detalle MST/BCK/MTH
|
||||
|
||||
| Tabla | Nombre | Descripción |
|
||||
|-------|--------|-------------|
|
||||
| mst | Master | Burocracia, documentos formales, registros administrativos |
|
||||
| bck | Back | Evidencia del mundo real, trabajo efectivo, hechos |
|
||||
| mth | Method | Métodos, procesos productivos predefinidos |
|
||||
|
||||
---
|
||||
|
||||
## 3. Descripción de Campos
|
||||
|
||||
| Campo | Tipo | Descripción |
|
||||
|-------|------|-------------|
|
||||
| num | INTEGER | Identificador numérico autoincremental |
|
||||
| alias | VARCHAR | Nombre corto del registro |
|
||||
| ref | VARCHAR | Código único (típicamente 3 letras) |
|
||||
| mrf | VARCHAR(64) | Hash público SHA-256 (identidad del registro) |
|
||||
| private_mrf | VARCHAR(64) | Hash original SHA-256 (prueba de propiedad) |
|
||||
| name_es | VARCHAR | Nombre en español |
|
||||
| name_en | VARCHAR | Nombre en inglés |
|
||||
| name_ch | VARCHAR | Nombre en chino |
|
||||
| group | VARCHAR | Subgrupo dentro de hst/flg/ply (enum cerrado) |
|
||||
| set_hst | VARCHAR(64) | mrf del hashtag que define el tipo (abierto) |
|
||||
| link_mst | VARCHAR/JSONB | Enlace a un mst (único o múltiple según tabla) |
|
||||
| link_bck | JSONB/VARCHAR | Enlace a bck (único o múltiple según tabla) |
|
||||
| txt | TEXT | Texto libre / descripción |
|
||||
| hashtags | JSONB | Array de mrfs de hst |
|
||||
| standard_md | TEXT | Descripción técnica en Markdown (define formato) |
|
||||
| standard_data | TEXT | Formato heredado del group |
|
||||
| jsonb_standard | JSONB | Schema JSON con versiones (define estructura) |
|
||||
| jsonb_data | JSONB | Datos reales según schema |
|
||||
| version | VARCHAR | Versión del formato usado |
|
||||
| rootref | VARCHAR | Concatenación de refs (jerarquía) |
|
||||
| roothash | JSONB | Array de mrfs (jerarquía) |
|
||||
| img_url | VARCHAR | URL de imagen original |
|
||||
| img_thumb_url | VARCHAR | URL de thumbnail |
|
||||
| owner | JSONB | Propietario(s) |
|
||||
| set_flg | JSONB | Array de mrfs de flg |
|
||||
| url | VARCHAR | URL externa |
|
||||
| url_atc | JSONB | Array de URLs de adjuntos |
|
||||
| url_json | VARCHAR/JSONB | URL(s) de archivos JSON para IA |
|
||||
| date | DATE | Fecha manual significativa |
|
||||
| created_at | TIMESTAMP | Fecha de creación automática |
|
||||
| mth_mrf | VARCHAR(64) | Referencia al proceso productivo |
|
||||
|
||||
---
|
||||
|
||||
## 4. Tablas Relacionales
|
||||
|
||||
### 4.1 Árbol y Grafos
|
||||
|
||||
| tree_hst | tree_flg | graph_hst | graph_flg | library_hst | library_flg |
|
||||
|----------|----------|-----------|-----------|-------------|-------------|
|
||||
| mrf_parent | mrf_parent | mrf_a | mrf_a | mrf_library | mrf_library |
|
||||
| mrf_child | mrf_child | mrf_b | mrf_b | mrf_hst | mrf_flg |
|
||||
| - | - | weight | weight | - | - |
|
||||
| - | - | edge_type | edge_type | - | - |
|
||||
|
||||
### 4.2 Relaciones Entidades-Tags
|
||||
|
||||
| ply_hst | ply_flg | itm_hst | itm_flg | loc_hst | loc_flg |
|
||||
|---------|---------|---------|---------|---------|---------|
|
||||
| mrf_ply | mrf_ply | mrf_itm | mrf_itm | mrf_loc | mrf_loc |
|
||||
| mrf_hst | mrf_flg | mrf_hst | mrf_flg | mrf_hst | mrf_flg |
|
||||
|
||||
| mst_hst | mst_flg | bck_hst | bck_flg | mth_hst | mth_flg |
|
||||
|---------|---------|---------|---------|---------|---------|
|
||||
| mrf_mst | mrf_mst | mrf_bck | mrf_bck | mrf_mth | mrf_mth |
|
||||
| mrf_hst | mrf_flg | mrf_hst | mrf_flg | mrf_hst | mrf_flg |
|
||||
|
||||
---
|
||||
|
||||
## 5. Grupos (group)
|
||||
|
||||
### 5.1 HST - Etiquetado Semántico
|
||||
|
||||
| group | Nombre | Regla de ref |
|
||||
|-------|--------|--------------|
|
||||
| hst | hashtags base | Cada registro tiene ref única |
|
||||
| spe | especificaciones | Todos tienen ref = "spe" |
|
||||
| vsn | visiones | Todos tienen ref = "vsn" |
|
||||
| vue | valores | Todos tienen ref = "vue" |
|
||||
| msn | misiones | ref = "msn", "pjt", "tgt" o "ctg" |
|
||||
|
||||
### 5.2 PLY - Players
|
||||
|
||||
| ref | group | Descripción |
|
||||
|-----|-------|-------------|
|
||||
| ppl | persona | Individuo humano |
|
||||
| inc | empresa | Entidad jurídica |
|
||||
| tem | equipo | Grupo de personas |
|
||||
| ain | inteligencia artificial | Agente artificial |
|
||||
|
||||
---
|
||||
|
||||
## 6. Edge Types (graph)
|
||||
|
||||
| edge_type | Descripción |
|
||||
|-----------|-------------|
|
||||
| relation | Genérica |
|
||||
| specialization | Es-un-tipo-de |
|
||||
| mirror | Equivalencia/reflejo |
|
||||
| dependency | Depende-de |
|
||||
| composition | Parte-de |
|
||||
| sequence | Sigue-a |
|
||||
| association | Asociado-con |
|
||||
| contextual | En-contexto-de |
|
||||
| alternative | Alternativa-a |
|
||||
|
||||
---
|
||||
|
||||
## 7. Estructura de Carpetas (Servidor)
|
||||
|
||||
```
|
||||
/hst/
|
||||
├── bases/ # Backups SQL
|
||||
├── images/
|
||||
│ ├── hst/thumb/
|
||||
│ ├── flg/thumb/
|
||||
│ ├── ply/thumb/
|
||||
│ ├── itm/thumb/
|
||||
│ ├── loc/thumb/
|
||||
│ ├── mst/thumb/
|
||||
│ ├── bck/thumb/
|
||||
│ └── mth/thumb/
|
||||
└── map/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8. Infraestructura
|
||||
|
||||
| Servidor | IP | Propósito |
|
||||
|----------|-----|-----------|
|
||||
| ARCHITECT | 69.62.126.110 | Desarrollo |
|
||||
| HST | 72.62.2.84 | API tags semánticos |
|
||||
| DECK | 72.62.1.113 | Usuario |
|
||||
| CORP | 92.112.181.188 | Corporativo |
|
||||
|
||||
| Parámetro | Valor |
|
||||
|-----------|-------|
|
||||
| Container | postgres_hst |
|
||||
| Usuario | directus |
|
||||
| DB | hst_images |
|
||||
| R2 Endpoint | https://7dedae6030f5554d99d37e98a5232996.r2.cloudflarestorage.com |
|
||||
|
||||
---
|
||||
|
||||
## 9. Tablas Oracle (Prospectiva)
|
||||
|
||||
### oracle_analisis
|
||||
|
||||
| Campo | Tipo | Descripción |
|
||||
|-------|------|-------------|
|
||||
| num | SERIAL | Identificador |
|
||||
| mrf | VARCHAR(64) | Hash público (PK) |
|
||||
| private_mrf | VARCHAR(64) | Hash privado |
|
||||
| name_es | VARCHAR(255) | Nombre en español |
|
||||
| name_en | VARCHAR(255) | Nombre en inglés |
|
||||
| txt | TEXT | Descripción |
|
||||
| h_bloques_feldman | JSONB | Array de mrfs de Feldman |
|
||||
| periodo_inicio | DATE | Inicio período histórico |
|
||||
| periodo_fin | DATE | Fin período histórico |
|
||||
| h_dataset | VARCHAR(64) | Hash integridad del conjunto |
|
||||
| modelo_name | VARCHAR(255) | Nombre del modelo |
|
||||
| modelo_version | VARCHAR(50) | Versión del modelo |
|
||||
| modelo_metodologia | TEXT | Descripción metodología |
|
||||
| modelo_formulas | JSONB | Fórmulas de cálculo |
|
||||
| modelo_parametros | JSONB | Parámetros fijos |
|
||||
| modelo_limitaciones | TEXT | Limitaciones |
|
||||
| supuestos | JSONB | Array de supuestos |
|
||||
| escenario_base | JSONB | Escenario base |
|
||||
| escenario_optimista | JSONB | Escenario optimista |
|
||||
| escenario_pesimista | JSONB | Escenario pesimista |
|
||||
| escenario_estres | JSONB | Escenario estrés |
|
||||
| sensibilidad | JSONB | Análisis sensibilidad |
|
||||
| estado | VARCHAR(20) | activo, caducado, invalidado |
|
||||
| fecha_caducidad | DATE | Fecha expiración |
|
||||
| condiciones_invalidacion | TEXT | Qué invalida el análisis |
|
||||
| autor | VARCHAR(255) | Usuario o módulo Grace |
|
||||
| owner | JSONB | Propietario(s) |
|
||||
| version | VARCHAR(50) | Versión |
|
||||
| date | DATE | Fecha emisión |
|
||||
| created_at | TIMESTAMP | Fecha creación |
|
||||
|
||||
### oracle_escenario
|
||||
|
||||
| Campo | Tipo | Descripción |
|
||||
|-------|------|-------------|
|
||||
| num | SERIAL | Identificador |
|
||||
| mrf | VARCHAR(64) | Hash público (PK) |
|
||||
| private_mrf | VARCHAR(64) | Hash privado |
|
||||
| analisis_mrf | VARCHAR(64) | FK a oracle_analisis |
|
||||
| name_es | VARCHAR(255) | Nombre en español |
|
||||
| name_en | VARCHAR(255) | Nombre en inglés |
|
||||
| txt | TEXT | Descripción |
|
||||
| valores_supuestos | JSONB | id_supuesto → valor |
|
||||
| resultado_min | NUMERIC | Límite inferior |
|
||||
| resultado_max | NUMERIC | Límite superior |
|
||||
| resultado_medio | NUMERIC | Valor central |
|
||||
| horizonte | VARCHAR(50) | Período proyección |
|
||||
| comparado_con | JSONB | Array mrfs otros escenarios |
|
||||
| autor | VARCHAR(255) | Usuario |
|
||||
| owner | JSONB | Propietario(s) |
|
||||
| date | DATE | Fecha |
|
||||
| created_at | TIMESTAMP | Fecha creación |
|
||||
|
||||
---
|
||||
|
||||
## 10. Resumen
|
||||
|
||||
| Tipo | Cantidad |
|
||||
|------|----------|
|
||||
| Tablas principales | 8 |
|
||||
| Tablas Oracle | 2 |
|
||||
| Tablas árbol/grafos | 6 |
|
||||
| Tablas relacionales | 12 |
|
||||
| **Total** | **28** |
|
||||
|
||||
---
|
||||
|
||||
## 11. Changelog
|
||||
|
||||
### v2.1 (4 Enero 2026)
|
||||
- Añadido `img_thumb_url` en todas las tablas
|
||||
|
||||
### v2.0 (4 Enero 2026)
|
||||
|
||||
| Antes | Después |
|
||||
|-------|---------|
|
||||
| nombre_es/en/ch | name_es/en/ch |
|
||||
| estandar_md | standard_md |
|
||||
| estandar_data | standard_data |
|
||||
| grupo | group |
|
||||
| mrf_padre | mrf_parent |
|
||||
| mrf_hijo | mrf_child |
|
||||
| mrf_biblioteca | mrf_library |
|
||||
|
||||
---
|
||||
|
||||
# Anexo: Cuestiones Pendientes
|
||||
|
||||
## A.1 Subgrupos por Definir
|
||||
|
||||
### FLG - Flags
|
||||
|
||||
| Categoría | Códigos | Ejemplos | Estado |
|
||||
|-----------|---------|----------|--------|
|
||||
| Países | ??? | España, USA, China | Pendiente |
|
||||
| Jurisdicciones | ??? | UE, LATAM, NAFTA | Pendiente |
|
||||
| Normativas | ??? | RGPD, SOX, HIPAA | Pendiente |
|
||||
| Estándares | ??? | ISO 27001, Bluetooth, WiFi | Pendiente |
|
||||
|
||||
### ITM - Items
|
||||
|
||||
| Categoría | Códigos | Ejemplos | Estado |
|
||||
|-----------|---------|----------|--------|
|
||||
| ??? | ??? | Productos, componentes, materiales | Pendiente |
|
||||
|
||||
**Referencia:** Marco temporal T-N → T+N ya definido (crf, mku, zmd, prd, itm).
|
||||
|
||||
### LOC - Locations
|
||||
|
||||
| Categoría | Códigos | Ejemplos | Estado |
|
||||
|-----------|---------|----------|--------|
|
||||
| Punto | ??? | Coordenadas exactas | Pendiente |
|
||||
| Área | ??? | Zona delimitada | Pendiente |
|
||||
| Ruta | ??? | Trayecto entre puntos | Pendiente |
|
||||
|
||||
---
|
||||
|
||||
## A.2 Estructura jsonb_standard (Capas)
|
||||
|
||||
| Capa | Nombre | Contenido |
|
||||
|------|--------|-----------|
|
||||
| L1 | core | Identificación básica |
|
||||
| L2 | {dominio} | Datos específicos del tipo |
|
||||
| L3 | relations | Referencias a otras entidades |
|
||||
| L4 | extended | Datos opcionales |
|
||||
| L5 | metadata | Auditoría, versiones |
|
||||
| L6+ | custom | Extensiones específicas |
|
||||
|
||||
**Estado:** Propuesto, no validado.
|
||||
|
||||
---
|
||||
|
||||
## A.3 Campos jsonb_data por Tabla
|
||||
|
||||
| Tabla | Campos esperados en jsonb_data | Estado |
|
||||
|-------|--------------------------------|--------|
|
||||
| ply (ppl) | fecha_nacimiento, genero, ... | Pendiente |
|
||||
| ply (inc) | nombre_fiscal, codigo_fiscal, telefono, email, direccion, numero_cuenta | Parcial |
|
||||
| ply (tem) | miembros, ... | Pendiente |
|
||||
| ply (ain) | modelo, proveedor, ... | Pendiente |
|
||||
| itm | ref_supplier, moq, lote, embalaje, unidad, coste, iva, delivery_time, specs | Parcial |
|
||||
| loc | lat, lon, precision, tipo_zona, ... | Pendiente |
|
||||
| mst | positivo, negativo, time, count, days, fecha_objetivo, ... | Parcial |
|
||||
| bck | fecha_inicio, fecha_final, prioridad, ... | Parcial |
|
||||
| mth | pasos, secuencia, validaciones, ... | Pendiente |
|
||||
|
||||
---
|
||||
|
||||
## A.4 Formatos de owner
|
||||
|
||||
| Caso | Formato | Estado |
|
||||
|------|---------|--------|
|
||||
| Propietario único | `"mrf123..."` | Definido |
|
||||
| Múltiples propietarios | `[{"mrf": "...", "participacion": 51}, ...]` | Definido |
|
||||
| Empresa con socios | Schema en hst ref="owner" | Pendiente |
|
||||
|
||||
---
|
||||
|
||||
## A.5 Bibliotecas
|
||||
|
||||
### Visibilidad Pública/Privada
|
||||
|
||||
| Aspecto | Decisión | Implementación |
|
||||
|---------|----------|----------------|
|
||||
| Diferencia en datos | No hay | - |
|
||||
| Discriminación | En endpoint | Pendiente |
|
||||
|
||||
### Niveles de Biblioteca
|
||||
|
||||
| Nivel | Descripción | Estado |
|
||||
|-------|-------------|--------|
|
||||
| Sistema (pública) | Disponibles para todos | Existente |
|
||||
| Sistema (privada) | Backup completo, solo admin | Existente |
|
||||
| Usuario | Creadas por el usuario | Por implementar |
|
||||
|
||||
---
|
||||
|
||||
## A.6 Sincronización de Tablas Redundantes
|
||||
|
||||
| Opción | Descripción | Estado |
|
||||
|--------|-------------|--------|
|
||||
| Triggers | Actualización automática en INSERT/UPDATE | Por evaluar |
|
||||
| Batch | Sincronización periódica | Por evaluar |
|
||||
| Aplicación | Lógica en el código | Por evaluar |
|
||||
|
||||
**Pregunta:** ¿Cómo se sincronizan las tablas redundantes (ply_hst, itm_flg, etc.) con los campos JSONB (hashtags, set_flg)?
|
||||
|
||||
---
|
||||
|
||||
## A.7 API y Endpoints Pendientes
|
||||
|
||||
| Endpoint | Función | Estado |
|
||||
|----------|---------|--------|
|
||||
| /biblioteca/import | Importar biblioteca | Pendiente |
|
||||
| /biblioteca/export | Exportar biblioteca | Pendiente |
|
||||
| /sync/redundant | Sincronizar tablas redundantes | Pendiente |
|
||||
|
||||
---
|
||||
|
||||
## A.8 Validaciones
|
||||
|
||||
### Foreign Keys
|
||||
|
||||
| Decisión | Estado |
|
||||
|----------|--------|
|
||||
| Usar FK con DEFERRABLE INITIALLY DEFERRED | Propuesto |
|
||||
| Permitir importación masiva sin validación inmediata | Propuesto |
|
||||
|
||||
### Constraints de Unicidad
|
||||
|
||||
| Campo | Tabla | Constraint | Estado |
|
||||
|-------|-------|------------|--------|
|
||||
| mrf | todas | UNIQUE | Por verificar |
|
||||
| ref | hst (dentro de grupo) | UNIQUE | Por verificar |
|
||||
| mrf_child | tree_* | UNIQUE | Existente |
|
||||
|
||||
---
|
||||
|
||||
## A.9 Prioridades
|
||||
|
||||
### Alta (Bloquea desarrollo)
|
||||
|
||||
1. Definir subgrupos FLG
|
||||
|
||||
### Media (Mejora funcionalidad)
|
||||
|
||||
2. Definir jsonb_data por tabla
|
||||
3. Mecanismo de sincronización tablas redundantes
|
||||
4. Endpoints de importación/exportación
|
||||
|
||||
### Baja (Optimización)
|
||||
|
||||
5. Subgrupos ITM, LOC, MST, BCK, MTH
|
||||
6. Documentación de estándares
|
||||
7. Migración a Gitea
|
||||
|
||||
---
|
||||
|
||||
*TZZR Database Schema v2.1 - 6 Enero 2026*
|
||||
Reference in New Issue
Block a user