Nivel: N5 – Gerencia / Desarrollo
Indice general de las bases de datos de todos los modulos del ERP. Cada modulo tiene su propia categoria «Base de Datos del Modulo» con los instructivos detallados (tablas, columnas, RLS). Este documento explica la logica y sirve de mapa.
Indice general de las bases de datos de todos los modulos del ERP. Cada modulo tiene su propia categoria «Base de Datos del Modulo» con los instructivos detallados (tablas, columnas, RLS). Este documento explica la logica y sirve de mapa.
1. Como se organiza
La documentacion de bases de datos sigue esta estructura:
ERP-Produccion/ ├── 30. Base de Datos/ │ └── ESTE DOCUMENTO (indice general) │ Explica la logica y enlaza a cada modulo. │ Modulo de Gestion de Usuarios/ ├── 09. Base de Datos del Modulo/ │ ├── Esquema BD Nucleo 1: Usuarios y Perfiles ← tablas, columnas, FK │ ├── Sistema de Autenticacion (login/Google) ← auth.users, triggers │ └── (futuros: migracion ETL, scripts SQL...) │ Modulo Comercial (futuro)/ ├── XX. Base de Datos del Modulo/ │ ├── Esquema BD Nucleo 2: Comercial y CRM │ └── ... │ Modulo de Archivologia (futuro)/ ├── XX. Base de Datos del Modulo/ │ ├── Esquema BD Nucleo 6: Documental │ └── ...
REGLA: Los instructivos detallados de BD (tablas, columnas, SQL) viven dentro de cada modulo, no aqui. Esta categoria solo tiene descripciones generales e indices.
2. Los 8 Nucleos y sus bases de datos
El ERP se organiza en 8 Nucleos. Cada uno tiene su propia logica de base de datos. Todos comparten la Celula Madre (public.profiles) como punto central. Ver Arquitectura Global de Datos para el detalle completo.
| Nucleo | Area | Tabla central | Instructivo de BD | Estado |
|---|---|---|---|---|
| 1 | Usuarios y Perfiles | public.profiles | Esquema BD Nucleo 1 | ✅ Publicado |
| 2 | Comercial, Marketing, CRM | catalogo_maestro, pedidos | — | ⬜ Pendiente |
| 3 | Logistico | activos_fijos | — | ⬜ Pendiente |
| 4 | Produccion y Operaciones | servicios_activados | — | ⬜ Pendiente |
| 5 | Finanzas | compromisos | — | ⬜ Pendiente |
| 6 | Documental | expedientes | — | ⬜ Pendiente |
| 7 | RRHH | empleados | — | ⬜ Pendiente |
| 8 | Soporte e Infraestructura | tickets | — | ⬜ Pendiente |
3. Reglas universales de la base de datos
| Regla | Descripcion |
|---|---|
| Celula Madre | Toda tabla que referencie a una persona DEBE usar profiles.id como FK. Nunca guardar nombre/cedula directamente |
| No borrar | Ningun registro se elimina. Se marca como inactivo con un campo estatus o activo = false |
| RLS obligatorio | Toda tabla nueva DEBE tener Row Level Security habilitado. Sin excepciones |
| Timestamps | Toda tabla DEBE tener created_at y updated_at con tipo timestamptz |
| UUID como PK | Usar uuid como Primary Key (generado con gen_random_uuid()). No usar auto-increment |
| Enums para estados | Usar tipos ENUM de PostgreSQL para campos con opciones fijas (estatus, tipo, rol) |
| 1 tabla = 1 responsabilidad | No mezclar datos de diferentes conceptos en la misma tabla. Crear tablas satelite |
4. Referencia
| Documento | Relacion |
|---|---|
| Arquitectura Global de Datos | Los 8 Nucleos completos con todas las tablas |
| Stack Tecnologico | PostgreSQL, Supabase, RLS explicados |
| Esquema BD Nucleo 1 | Tablas del modulo de Usuarios (el primero creado) |
| Sistema de Autenticacion | Login, registro, Google OAuth — conecta con auth.users |

