# Base de Datos

## Motor y acceso

- Motor inferido: MySQL/MariaDB.
- Extension PHP: `mysqli`.
- Capa de acceso: `include/database/PearDatabase.php`.
- Driver: ADOdb adaptado en `libraries/adodb_vtigerfix/`.
- ORM moderno: no existe; Vtiger usa `CRMEntity`, modelos por modulo y SQL directo.

## Configuracion sensible

- `admin/config.inc.php`, `admin/config.db.php`, `admin/config.csrf-secret.php` contienen datos sensibles.
- Nunca documentar passwords, tokens, API keys ni hashes.

## Tablas criticas

- Core: `vtiger_crmentity`, `vtiger_tab`, `vtiger_field`, `vtiger_blocks`, `vtiger_links`.
- Usuarios/ACL: `vtiger_users`, `vtiger_role`, `vtiger_profile`, sharing tables, `user_privileges/*`.
- Cron: `vtiger_cron_task`, `vtiger_cron_log`.
- Webservices: `vtiger_ws_operation`, `vtiger_ws_operation_parameters`.
- Inventario: `vtiger_inventoryproductrel` y tablas de impuestos/cargos.

## Personalizaciones de datos

- GeoCuentas: `vtiger_geocuentas*`, `vtiger_geocuentas_config`, campos geo en `vtiger_accountscf`.
- Logistica: `vtiger_logistica*`, `vtiger_logistica_config`, `vtiger_logistica_ai_logs`.
- WSAPP: `vtiger_wsapp*` para appkeys, mapping, queue y sync state.

## Riesgos

- SQL legacy concatenado en algunos modulos.
- Alto acoplamiento entre codigo y tablas.
- Migraciones distribuidas entre `schema.xml`, vtlib handlers y scripts legacy.
