- Added `useAssetPickerController` for managing asset selection logic. - Created `AssetSelectProps` type for defining asset selection properties. - Implemented `AssetPickerDialog` for displaying the asset selection interface. - Developed `AssetPickerList` for rendering the list of selectable assets. - Introduced `AssetSelect` component for integrating the asset picker into forms. - Created `AssetList` component for shared asset listing functionality. - Added tests for workstation creation logic to ensure proper validation. - Implemented workstation asset fields and association fields for managing workstation assets. - Developed workstation lifecycle dialog for managing work profile states. - Added form progress component for visualizing multi-step forms.
1488 lines
53 KiB
Markdown
1488 lines
53 KiB
Markdown
# Diagrama de entidad relación de la base de datos
|
|
|
|
Esquema físico consultado en MariaDB el **14 de octubre de 2026** mediante `information_schema`. Esta instantánea refleja las tablas y restricciones existentes, no un diseño propuesto ni únicamente los modelos de Sequelize. No se han consultado registros de negocio ni modificado la base de datos.
|
|
|
|
**130 tablas y 2 vistas SQL · 999 columnas · 1054 restricciones FK · 355 relaciones distintas** (agrupando restricciones con idénticas columnas, destino y reglas).
|
|
|
|
- [Diagrama completo, con todas las columnas (Mermaid)](diagrama-entidad-relacion-completo.mmd).
|
|
- [Diccionario completo de tablas, columnas y claves foráneas](diccionario-del-esquema-actual.md).
|
|
|
|
## Cómo leer los diagramas
|
|
|
|
`||`: exactamente uno; `|o`: cero o uno; `o{`: cero o muchos; `o|`: cero o uno en el extremo hijo. La nulabilidad de la FK determina si el padre es opcional. Las restricciones PRIMARY/UNIQUE determinan si el hijo puede repetirse. Las líneas discontinuas representan asociaciones por FK; no se deduce composición de dominio a partir de ellas. La etiqueta indica las columnas del hijo.
|
|
|
|
Los diagramas por área muestran las PK/FK y los padres externos necesarios para entender sus relaciones. Cada tabla pertenece a un área; los padres pueden repetirse como referencia. El archivo completo incluye todas las columnas, también las tablas sin FK. Los nombres son los reales de MariaDB: por ejemplo, las personas se almacenan en `company_contacts`.
|
|
|
|
## Vista principal
|
|
|
|
Vista reducida: omite tablas auxiliares e históricas; todas ellas aparecen en las áreas siguientes y en el diagrama completo.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
asset_brands
|
|
asset_definitions
|
|
assets
|
|
companies
|
|
company_contacts
|
|
company_departments
|
|
company_sites
|
|
interventions
|
|
person_department_assignments
|
|
resource_definitions
|
|
resources
|
|
tickets
|
|
users
|
|
work_profiles
|
|
workstation_assets
|
|
workstation_members
|
|
workstations
|
|
companies |o..o{ asset_definitions : "companyId"
|
|
asset_brands |o..o{ assets : "brandId"
|
|
asset_definitions ||..o{ assets : "templateId"
|
|
companies ||..o{ assets : "companyId"
|
|
company_sites |o..o{ assets : "siteId"
|
|
companies ||..o{ company_contacts : "companyId"
|
|
companies ||..o{ company_departments : "companyId"
|
|
companies ||..o{ company_sites : "companyId"
|
|
companies ||..o{ interventions : "companyId"
|
|
tickets |o..o{ interventions : "ticketId"
|
|
users |o..o{ interventions : "assigneeId"
|
|
companies ||..o{ person_department_assignments : "companyId"
|
|
company_contacts ||..o{ person_department_assignments : "personId, companyId"
|
|
company_departments ||..o{ person_department_assignments : "departmentId, companyId"
|
|
companies |o..o{ resource_definitions : "companyId"
|
|
companies ||..o{ resources : "companyId"
|
|
resource_definitions |o..o{ resources : "addressFieldId"
|
|
resource_definitions |o..o{ resources : "contextFieldId"
|
|
resource_definitions |o..o{ resources : "referenceFieldId"
|
|
resource_definitions ||..o{ resources : "templateId"
|
|
companies ||..o{ tickets : "companyId"
|
|
company_contacts |o..o{ tickets : "requesterId"
|
|
users |o..o{ tickets : "assigneeId"
|
|
assets ||..o{ work_profiles : "assetId"
|
|
companies ||..o{ work_profiles : "companyId"
|
|
company_contacts ||..o{ work_profiles : "personId"
|
|
assets ||..o{ workstation_assets : "assetId"
|
|
assets ||..o{ workstation_assets : "companyId, assetId"
|
|
companies ||..o{ workstation_assets : "companyId"
|
|
workstations ||..o{ workstation_assets : "companyId, workstationId"
|
|
workstations ||..o{ workstation_assets : "workstationId"
|
|
assets ||..o{ workstation_members : "assetId"
|
|
workstations ||..o{ workstation_members : "workstationId"
|
|
assets |o..o{ workstations : "computerAssetId"
|
|
companies ||..o{ workstations : "companyId"
|
|
company_contacts |o..o{ workstations : "personId"
|
|
company_sites |o..o{ workstations : "siteId"
|
|
```
|
|
|
|
## Áreas del esquema
|
|
|
|
| Área | Tablas |
|
|
| --- | ---: |
|
|
| Cuentas y accesos: histórico | 15 |
|
|
| Cuentas y accesos: estado actual | 18 |
|
|
| Vistas SQL de cuentas y accesos | 2 |
|
|
| Correo y configuraciones | 16 |
|
|
| Activos y catálogo | 18 |
|
|
| Compañías y personas | 8 |
|
|
| Usuarios y sesión | 3 |
|
|
| Tickets e intervenciones | 19 |
|
|
| Procesos de personas | 9 |
|
|
| Teletrabajo y conexiones remotas | 4 |
|
|
| Recursos y catálogo | 13 |
|
|
| Perfiles de usuario | 2 |
|
|
| Puestos de trabajo | 5 |
|
|
|
|
## Cuentas y accesos: histórico
|
|
|
|
Tablas propias: `access_account_person_revision_values`, `access_account_revision_values`, `access_coverage_revision_values`, `access_environment_revision_values`, `access_grant_revision_values`, `access_group_revision_values`, `access_membership_revision_values`, `access_need_revision_permissions`, `access_need_revision_values`, `access_permission_revision_values`, `access_resource_revision_values`, `access_resource_type_revision_values`, `access_revisions`, `access_system_revision_values`, `access_template_revision_values`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
access_account_person_revision_values {
|
|
char ownerId PK,FK
|
|
char accountId FK
|
|
char personId FK
|
|
}
|
|
access_account_revision_values {
|
|
char ownerId PK,FK
|
|
char systemId FK
|
|
char environmentId FK "nullable"
|
|
}
|
|
access_coverage_revision_values {
|
|
char ownerId PK,FK
|
|
char needId FK
|
|
char grantId FK
|
|
char accountPersonId FK
|
|
char membershipId FK "nullable"
|
|
}
|
|
access_environment_revision_values {
|
|
char ownerId PK,FK
|
|
char systemId FK
|
|
}
|
|
access_grant_revision_values {
|
|
char ownerId PK,FK
|
|
char resourceId FK
|
|
char permissionId FK
|
|
char accountId FK "nullable"
|
|
char groupId FK "nullable"
|
|
}
|
|
access_group_revision_values {
|
|
char ownerId PK,FK
|
|
char systemId FK
|
|
char environmentId FK "nullable"
|
|
char templateId FK "nullable"
|
|
}
|
|
access_items {
|
|
char id PK
|
|
char workspaceId FK
|
|
}
|
|
access_membership_revision_values {
|
|
char ownerId PK,FK
|
|
char accountId FK
|
|
char groupId FK
|
|
}
|
|
access_need_revision_permissions {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
char permissionId FK
|
|
}
|
|
access_need_revision_values {
|
|
char ownerId PK,FK
|
|
char personId FK
|
|
char resourceId FK
|
|
}
|
|
access_permission_revision_values {
|
|
char ownerId PK,FK
|
|
char resourceTypeId FK
|
|
}
|
|
access_resource_revision_values {
|
|
char ownerId PK,FK
|
|
char resourceTypeId FK
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
}
|
|
access_resource_type_revision_values {
|
|
char ownerId PK,FK
|
|
}
|
|
access_revisions {
|
|
char id PK
|
|
char itemId FK
|
|
char actorId FK
|
|
}
|
|
access_system_revision_values {
|
|
char ownerId PK,FK
|
|
}
|
|
access_template_revision_values {
|
|
char ownerId PK,FK
|
|
char systemId FK "nullable"
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
access_items ||..o{ access_account_person_revision_values : "accountId"
|
|
access_revisions ||..o| access_account_person_revision_values : "ownerId"
|
|
company_contacts ||..o{ access_account_person_revision_values : "personId"
|
|
access_items |o..o{ access_account_revision_values : "environmentId"
|
|
access_items ||..o{ access_account_revision_values : "systemId"
|
|
access_revisions ||..o| access_account_revision_values : "ownerId"
|
|
access_items ||..o{ access_coverage_revision_values : "accountPersonId"
|
|
access_items ||..o{ access_coverage_revision_values : "grantId"
|
|
access_items |o..o{ access_coverage_revision_values : "membershipId"
|
|
access_items ||..o{ access_coverage_revision_values : "needId"
|
|
access_revisions ||..o| access_coverage_revision_values : "ownerId"
|
|
access_items ||..o{ access_environment_revision_values : "systemId"
|
|
access_revisions ||..o| access_environment_revision_values : "ownerId"
|
|
access_items |o..o{ access_grant_revision_values : "accountId"
|
|
access_items |o..o{ access_grant_revision_values : "groupId"
|
|
access_items ||..o{ access_grant_revision_values : "permissionId"
|
|
access_items ||..o{ access_grant_revision_values : "resourceId"
|
|
access_revisions ||..o| access_grant_revision_values : "ownerId"
|
|
access_items |o..o{ access_group_revision_values : "environmentId"
|
|
access_items ||..o{ access_group_revision_values : "systemId"
|
|
access_items |o..o{ access_group_revision_values : "templateId"
|
|
access_revisions ||..o| access_group_revision_values : "ownerId"
|
|
access_items ||..o{ access_membership_revision_values : "accountId"
|
|
access_items ||..o{ access_membership_revision_values : "groupId"
|
|
access_revisions ||..o| access_membership_revision_values : "ownerId"
|
|
access_items ||..o{ access_need_revision_permissions : "permissionId"
|
|
access_need_revision_values ||..o{ access_need_revision_permissions : "ownerId"
|
|
access_items ||..o{ access_need_revision_values : "resourceId"
|
|
access_revisions ||..o| access_need_revision_values : "ownerId"
|
|
company_contacts ||..o{ access_need_revision_values : "personId"
|
|
access_items ||..o{ access_permission_revision_values : "resourceTypeId"
|
|
access_revisions ||..o| access_permission_revision_values : "ownerId"
|
|
access_items |o..o{ access_resource_revision_values : "environmentId"
|
|
access_items ||..o{ access_resource_revision_values : "resourceTypeId"
|
|
access_items |o..o{ access_resource_revision_values : "systemId"
|
|
access_revisions ||..o| access_resource_revision_values : "ownerId"
|
|
access_revisions ||..o| access_resource_type_revision_values : "ownerId"
|
|
access_items ||..o{ access_revisions : "itemId"
|
|
users ||..o{ access_revisions : "actorId"
|
|
access_revisions ||..o| access_system_revision_values : "ownerId"
|
|
access_items |o..o{ access_template_revision_values : "systemId"
|
|
access_revisions ||..o| access_template_revision_values : "ownerId"
|
|
```
|
|
|
|
## Cuentas y accesos: estado actual
|
|
|
|
Tablas propias: `access_account_person_values`, `access_account_values`, `access_coverage_values`, `access_environment_values`, `access_grant_values`, `access_group_values`, `access_items`, `access_membership_values`, `access_need_permissions`, `access_need_values`, `access_permission_values`, `access_person_references`, `access_references`, `access_resource_type_values`, `access_resource_values`, `access_system_values`, `access_template_values`, `access_workspaces`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
access_account_person_values {
|
|
char ownerId PK,FK
|
|
char accountId FK
|
|
char personId FK
|
|
}
|
|
access_account_values {
|
|
char ownerId PK,FK
|
|
char systemId FK
|
|
char environmentId FK "nullable"
|
|
}
|
|
access_coverage_values {
|
|
char ownerId PK,FK
|
|
char needId FK
|
|
char grantId FK
|
|
char accountPersonId FK
|
|
char membershipId FK "nullable"
|
|
}
|
|
access_environment_values {
|
|
char ownerId PK,FK
|
|
char systemId FK
|
|
}
|
|
access_grant_values {
|
|
char ownerId PK,FK
|
|
char resourceId FK
|
|
char permissionId FK
|
|
char accountId FK "nullable"
|
|
char groupId FK "nullable"
|
|
}
|
|
access_group_values {
|
|
char ownerId PK,FK
|
|
char systemId FK
|
|
char environmentId FK "nullable"
|
|
char templateId FK "nullable"
|
|
}
|
|
access_items {
|
|
char id PK
|
|
char workspaceId FK
|
|
}
|
|
access_membership_values {
|
|
char ownerId PK,FK
|
|
char accountId FK
|
|
char groupId FK
|
|
}
|
|
access_need_permissions {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
char permissionId FK
|
|
}
|
|
access_need_values {
|
|
char ownerId PK,FK
|
|
char personId FK
|
|
char resourceId FK
|
|
}
|
|
access_permission_values {
|
|
char ownerId PK,FK
|
|
char resourceTypeId FK
|
|
}
|
|
access_person_references {
|
|
char itemId PK,FK
|
|
char personId PK,FK
|
|
}
|
|
access_references {
|
|
int id PK
|
|
char itemId FK
|
|
char targetId FK
|
|
}
|
|
access_resource_type_values {
|
|
char ownerId PK,FK
|
|
}
|
|
access_resource_values {
|
|
char ownerId PK,FK
|
|
char resourceTypeId FK
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
}
|
|
access_system_values {
|
|
char ownerId PK,FK
|
|
}
|
|
access_template_values {
|
|
char ownerId PK,FK
|
|
char systemId FK "nullable"
|
|
}
|
|
access_workspaces {
|
|
char id PK
|
|
char companyId FK "nullable"
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
access_items ||..o{ access_account_person_values : "accountId"
|
|
access_items ||..o| access_account_person_values : "ownerId"
|
|
company_contacts ||..o{ access_account_person_values : "personId"
|
|
access_items |o..o{ access_account_values : "environmentId"
|
|
access_items ||..o| access_account_values : "ownerId"
|
|
access_items ||..o{ access_account_values : "systemId"
|
|
access_items ||..o{ access_coverage_values : "accountPersonId"
|
|
access_items ||..o{ access_coverage_values : "grantId"
|
|
access_items |o..o{ access_coverage_values : "membershipId"
|
|
access_items ||..o{ access_coverage_values : "needId"
|
|
access_items ||..o| access_coverage_values : "ownerId"
|
|
access_items ||..o| access_environment_values : "ownerId"
|
|
access_items ||..o{ access_environment_values : "systemId"
|
|
access_items |o..o{ access_grant_values : "accountId"
|
|
access_items |o..o{ access_grant_values : "groupId"
|
|
access_items ||..o| access_grant_values : "ownerId"
|
|
access_items ||..o{ access_grant_values : "permissionId"
|
|
access_items ||..o{ access_grant_values : "resourceId"
|
|
access_items |o..o{ access_group_values : "environmentId"
|
|
access_items ||..o| access_group_values : "ownerId"
|
|
access_items ||..o{ access_group_values : "systemId"
|
|
access_items |o..o{ access_group_values : "templateId"
|
|
access_workspaces ||..o{ access_items : "workspaceId"
|
|
access_items ||..o{ access_membership_values : "accountId"
|
|
access_items ||..o{ access_membership_values : "groupId"
|
|
access_items ||..o| access_membership_values : "ownerId"
|
|
access_items ||..o{ access_need_permissions : "permissionId"
|
|
access_need_values ||..o{ access_need_permissions : "ownerId"
|
|
access_items ||..o| access_need_values : "ownerId"
|
|
access_items ||..o{ access_need_values : "resourceId"
|
|
company_contacts ||..o{ access_need_values : "personId"
|
|
access_items ||..o| access_permission_values : "ownerId"
|
|
access_items ||..o{ access_permission_values : "resourceTypeId"
|
|
access_items ||..o{ access_person_references : "itemId"
|
|
company_contacts ||..o{ access_person_references : "personId"
|
|
access_items ||..o{ access_references : "itemId"
|
|
access_items ||..o{ access_references : "targetId"
|
|
access_items ||..o| access_resource_type_values : "ownerId"
|
|
access_items |o..o{ access_resource_values : "environmentId"
|
|
access_items ||..o| access_resource_values : "ownerId"
|
|
access_items ||..o{ access_resource_values : "resourceTypeId"
|
|
access_items |o..o{ access_resource_values : "systemId"
|
|
access_items ||..o| access_system_values : "ownerId"
|
|
access_items ||..o| access_template_values : "ownerId"
|
|
access_items |o..o{ access_template_values : "systemId"
|
|
companies |o..o{ access_workspaces : "companyId"
|
|
```
|
|
|
|
## Vistas SQL de cuentas y accesos
|
|
|
|
Tablas propias: `access_current_values`, `access_historical_values`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
access_current_values
|
|
access_historical_values
|
|
```
|
|
|
|
## Correo y configuraciones
|
|
|
|
Tablas propias: `application_configuration_revisions`, `application_configurations`, `certificate_configuration_revisions`, `certificate_configurations`, `folder_mapping_revisions`, `folder_mappings`, `mail_configuration_revisions`, `mail_configurations`, `mailbox_revisions`, `mailbox_use_revisions`, `mailbox_uses`, `mailboxes`, `printer_configuration_revisions`, `printer_configurations`, `software_installation_revisions`, `software_installations`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
access_items {
|
|
char id PK
|
|
char workspaceId FK
|
|
}
|
|
application_configuration_revisions {
|
|
char id PK
|
|
char configurationId FK
|
|
char actorId FK
|
|
char profileId FK "nullable"
|
|
char resourceId FK "nullable"
|
|
}
|
|
application_configurations {
|
|
char id PK
|
|
char companyId FK
|
|
char profileId FK
|
|
char resourceId FK
|
|
}
|
|
assets {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char siteId FK "nullable"
|
|
char brandId FK "nullable"
|
|
}
|
|
certificate_configuration_revisions {
|
|
char id PK
|
|
char configurationId FK
|
|
char actorId FK
|
|
char profileId FK "nullable"
|
|
char resourceId FK "nullable"
|
|
}
|
|
certificate_configurations {
|
|
char id PK
|
|
char companyId FK
|
|
char profileId FK
|
|
char resourceId FK
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
folder_mapping_revisions {
|
|
char id PK
|
|
char mappingId FK
|
|
char actorId FK
|
|
char profileId FK "nullable"
|
|
char needId FK "nullable"
|
|
}
|
|
folder_mappings {
|
|
char id PK
|
|
char companyId FK
|
|
char profileId FK
|
|
char needId FK
|
|
}
|
|
mail_configuration_revisions {
|
|
char id PK
|
|
char configurationId FK
|
|
char actorId FK
|
|
char personId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char assetId FK "nullable"
|
|
char profileId FK "nullable"
|
|
char mailboxId FK "nullable"
|
|
}
|
|
mail_configurations {
|
|
char id PK
|
|
char companyId FK
|
|
char personId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char assetId FK "nullable"
|
|
char profileId FK "nullable"
|
|
char mailboxId FK "nullable"
|
|
}
|
|
mailbox_revisions {
|
|
char id PK
|
|
char itemId FK
|
|
char actorId FK
|
|
char accountId FK "nullable"
|
|
}
|
|
mailbox_use_revisions {
|
|
char id PK
|
|
char itemId FK
|
|
char actorId FK
|
|
char mailboxId FK "nullable"
|
|
char personId FK "nullable"
|
|
}
|
|
mailbox_uses {
|
|
char id PK
|
|
char companyId FK
|
|
char mailboxId FK
|
|
char personId FK
|
|
}
|
|
mailboxes {
|
|
char id PK
|
|
char companyId FK
|
|
char accountId FK "nullable"
|
|
}
|
|
printer_configuration_revisions {
|
|
char id PK
|
|
char configurationId FK
|
|
char actorId FK
|
|
char profileId FK "nullable"
|
|
char printerId FK "nullable"
|
|
}
|
|
printer_configurations {
|
|
char id PK
|
|
char companyId FK
|
|
char profileId FK
|
|
char printerId FK
|
|
}
|
|
resources {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char addressFieldId FK "nullable"
|
|
char contextFieldId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char referenceFieldId FK "nullable"
|
|
char resourceTypeId FK "nullable"
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
}
|
|
software_installation_revisions {
|
|
char id PK
|
|
char configurationId FK
|
|
char assetId FK
|
|
char resourceId FK
|
|
char actorId FK
|
|
char licenseResourceId FK "nullable"
|
|
}
|
|
software_installations {
|
|
char id PK
|
|
char companyId FK
|
|
char assetId FK
|
|
char resourceId FK
|
|
char licenseResourceId FK "nullable"
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
work_profiles {
|
|
char id PK
|
|
char companyId FK
|
|
char personId FK
|
|
char accountId FK "nullable"
|
|
char assetId FK
|
|
}
|
|
application_configurations ||..o{ application_configuration_revisions : "configurationId"
|
|
resources |o..o{ application_configuration_revisions : "resourceId"
|
|
users ||..o{ application_configuration_revisions : "actorId"
|
|
work_profiles |o..o{ application_configuration_revisions : "profileId"
|
|
companies ||..o{ application_configurations : "companyId"
|
|
resources ||..o{ application_configurations : "resourceId"
|
|
work_profiles ||..o{ application_configurations : "profileId"
|
|
certificate_configurations ||..o{ certificate_configuration_revisions : "configurationId"
|
|
resources |o..o{ certificate_configuration_revisions : "resourceId"
|
|
users ||..o{ certificate_configuration_revisions : "actorId"
|
|
work_profiles |o..o{ certificate_configuration_revisions : "profileId"
|
|
companies ||..o{ certificate_configurations : "companyId"
|
|
resources ||..o{ certificate_configurations : "resourceId"
|
|
work_profiles ||..o{ certificate_configurations : "profileId"
|
|
access_items |o..o{ folder_mapping_revisions : "needId"
|
|
folder_mappings ||..o{ folder_mapping_revisions : "mappingId"
|
|
users ||..o{ folder_mapping_revisions : "actorId"
|
|
work_profiles |o..o{ folder_mapping_revisions : "profileId"
|
|
access_items ||..o{ folder_mappings : "needId"
|
|
companies ||..o{ folder_mappings : "companyId"
|
|
work_profiles ||..o{ folder_mappings : "profileId"
|
|
access_items |o..o{ mail_configuration_revisions : "accountId"
|
|
assets |o..o{ mail_configuration_revisions : "assetId"
|
|
company_contacts |o..o{ mail_configuration_revisions : "personId"
|
|
mail_configurations ||..o{ mail_configuration_revisions : "configurationId"
|
|
mailboxes |o..o{ mail_configuration_revisions : "mailboxId"
|
|
users ||..o{ mail_configuration_revisions : "actorId"
|
|
work_profiles |o..o{ mail_configuration_revisions : "profileId"
|
|
access_items |o..o{ mail_configurations : "accountId"
|
|
assets |o..o{ mail_configurations : "assetId"
|
|
companies ||..o{ mail_configurations : "companyId"
|
|
company_contacts |o..o{ mail_configurations : "personId"
|
|
mailboxes |o..o{ mail_configurations : "mailboxId"
|
|
work_profiles |o..o{ mail_configurations : "profileId"
|
|
access_items |o..o{ mailbox_revisions : "accountId"
|
|
mailboxes ||..o{ mailbox_revisions : "itemId"
|
|
users ||..o{ mailbox_revisions : "actorId"
|
|
company_contacts |o..o{ mailbox_use_revisions : "personId"
|
|
mailbox_uses ||..o{ mailbox_use_revisions : "itemId"
|
|
mailboxes |o..o{ mailbox_use_revisions : "mailboxId"
|
|
users ||..o{ mailbox_use_revisions : "actorId"
|
|
companies ||..o{ mailbox_uses : "companyId"
|
|
company_contacts ||..o{ mailbox_uses : "personId"
|
|
mailboxes ||..o{ mailbox_uses : "mailboxId"
|
|
access_items |o..o{ mailboxes : "accountId"
|
|
companies ||..o{ mailboxes : "companyId"
|
|
assets |o..o{ printer_configuration_revisions : "printerId"
|
|
printer_configurations ||..o{ printer_configuration_revisions : "configurationId"
|
|
users ||..o{ printer_configuration_revisions : "actorId"
|
|
work_profiles |o..o{ printer_configuration_revisions : "profileId"
|
|
assets ||..o{ printer_configurations : "printerId"
|
|
companies ||..o{ printer_configurations : "companyId"
|
|
work_profiles ||..o{ printer_configurations : "profileId"
|
|
assets ||..o{ software_installation_revisions : "assetId"
|
|
resources |o..o{ software_installation_revisions : "licenseResourceId"
|
|
resources ||..o{ software_installation_revisions : "resourceId"
|
|
software_installations ||..o{ software_installation_revisions : "configurationId"
|
|
users ||..o{ software_installation_revisions : "actorId"
|
|
assets ||..o{ software_installations : "assetId"
|
|
companies ||..o{ software_installations : "companyId"
|
|
resources |o..o{ software_installations : "licenseResourceId"
|
|
resources ||..o{ software_installations : "resourceId"
|
|
```
|
|
|
|
## Activos y catálogo
|
|
|
|
Tablas propias: `asset_availability`, `asset_brands`, `asset_catalogs`, `asset_characteristics`, `asset_definitions`, `asset_field_choices`, `asset_relationships`, `asset_revision_characteristics`, `asset_revisions`, `asset_specification_field_choices`, `asset_specification_fields`, `asset_specification_sections`, `asset_support`, `asset_support_revisions`, `asset_template_fields`, `asset_template_sections`, `assets`, `brand_catalog_lock`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
asset_availability {
|
|
char id PK
|
|
char catalogId FK
|
|
char companyId FK
|
|
char definitionId FK
|
|
}
|
|
asset_brands {
|
|
char id PK
|
|
}
|
|
asset_catalogs {
|
|
char id PK
|
|
}
|
|
asset_characteristics {
|
|
char assetId PK,FK
|
|
char fieldId PK,FK
|
|
}
|
|
asset_definitions {
|
|
char id PK
|
|
char catalogId FK
|
|
char companyId FK "nullable"
|
|
}
|
|
asset_field_choices {
|
|
char fieldId PK,FK
|
|
int position PK
|
|
}
|
|
asset_relationships {
|
|
char id PK
|
|
char companyId FK
|
|
char sourceId FK
|
|
char targetId FK
|
|
char typeId FK
|
|
char createdBy FK
|
|
char endedBy FK "nullable"
|
|
}
|
|
asset_revision_characteristics {
|
|
char revisionId PK,FK
|
|
char assetId FK
|
|
char fieldId PK,FK
|
|
}
|
|
asset_revisions {
|
|
char id PK
|
|
char assetId FK
|
|
char actorId FK
|
|
char siteId FK "nullable"
|
|
char brandId FK "nullable"
|
|
char templateId FK
|
|
}
|
|
asset_specification_field_choices {
|
|
char assetId PK,FK
|
|
char fieldId PK,FK
|
|
int position PK
|
|
}
|
|
asset_specification_fields {
|
|
char assetId PK,FK
|
|
char fieldId PK,FK
|
|
char sectionId FK "nullable"
|
|
}
|
|
asset_specification_sections {
|
|
char assetId PK,FK
|
|
char id PK
|
|
}
|
|
asset_support {
|
|
char id PK
|
|
char companyId FK
|
|
char assetId FK
|
|
char resourceId FK
|
|
}
|
|
asset_support_revisions {
|
|
char id PK
|
|
char connectionId FK
|
|
char actorId FK
|
|
char resourceId FK
|
|
}
|
|
asset_template_fields {
|
|
char id PK
|
|
char templateId FK
|
|
char fieldId FK
|
|
char sectionId FK "nullable"
|
|
}
|
|
asset_template_sections {
|
|
char id PK
|
|
char templateId FK
|
|
}
|
|
assets {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char siteId FK "nullable"
|
|
char brandId FK "nullable"
|
|
}
|
|
brand_catalog_lock {
|
|
int id PK
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_sites {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
resources {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char addressFieldId FK "nullable"
|
|
char contextFieldId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char referenceFieldId FK "nullable"
|
|
char resourceTypeId FK "nullable"
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
asset_catalogs ||..o{ asset_availability : "catalogId"
|
|
asset_definitions ||..o{ asset_availability : "definitionId"
|
|
companies ||..o{ asset_availability : "companyId"
|
|
asset_definitions ||..o{ asset_characteristics : "fieldId"
|
|
asset_specification_fields ||..o| asset_characteristics : "assetId, fieldId"
|
|
assets ||..o{ asset_characteristics : "assetId"
|
|
asset_catalogs ||..o{ asset_definitions : "catalogId"
|
|
companies |o..o{ asset_definitions : "companyId"
|
|
asset_definitions ||..o{ asset_field_choices : "fieldId"
|
|
asset_definitions ||..o{ asset_relationships : "typeId"
|
|
assets ||..o{ asset_relationships : "companyId, sourceId"
|
|
assets ||..o{ asset_relationships : "companyId, targetId"
|
|
assets ||..o{ asset_relationships : "sourceId"
|
|
assets ||..o{ asset_relationships : "targetId"
|
|
companies ||..o{ asset_relationships : "companyId"
|
|
users ||..o{ asset_relationships : "createdBy"
|
|
users |o..o{ asset_relationships : "endedBy"
|
|
asset_definitions ||..o{ asset_revision_characteristics : "fieldId"
|
|
asset_revisions ||..o{ asset_revision_characteristics : "revisionId"
|
|
asset_revisions ||..o{ asset_revision_characteristics : "revisionId, assetId"
|
|
asset_specification_fields ||..o{ asset_revision_characteristics : "assetId, fieldId"
|
|
assets ||..o{ asset_revision_characteristics : "assetId"
|
|
asset_brands |o..o{ asset_revisions : "brandId"
|
|
asset_definitions ||..o{ asset_revisions : "templateId"
|
|
assets ||..o{ asset_revisions : "assetId"
|
|
company_sites |o..o{ asset_revisions : "siteId"
|
|
users ||..o{ asset_revisions : "actorId"
|
|
asset_definitions ||..o{ asset_specification_field_choices : "fieldId"
|
|
asset_specification_fields ||..o{ asset_specification_field_choices : "assetId, fieldId"
|
|
assets ||..o{ asset_specification_field_choices : "assetId"
|
|
asset_definitions ||..o{ asset_specification_fields : "fieldId"
|
|
asset_specification_sections |o..o{ asset_specification_fields : "assetId, sectionId"
|
|
assets ||..o{ asset_specification_fields : "assetId"
|
|
assets ||..o{ asset_specification_sections : "assetId"
|
|
assets ||..o{ asset_support : "assetId"
|
|
assets ||..o{ asset_support : "companyId, assetId"
|
|
companies ||..o{ asset_support : "companyId"
|
|
resources ||..o{ asset_support : "companyId, resourceId"
|
|
resources ||..o{ asset_support : "resourceId"
|
|
asset_support ||..o{ asset_support_revisions : "connectionId"
|
|
resources ||..o{ asset_support_revisions : "resourceId"
|
|
users ||..o{ asset_support_revisions : "actorId"
|
|
asset_definitions ||..o{ asset_template_fields : "fieldId"
|
|
asset_definitions ||..o{ asset_template_fields : "templateId"
|
|
asset_template_sections |o..o{ asset_template_fields : "sectionId"
|
|
asset_template_sections |o..o{ asset_template_fields : "templateId, sectionId"
|
|
asset_definitions ||..o{ asset_template_sections : "templateId"
|
|
asset_brands |o..o{ assets : "brandId"
|
|
asset_definitions ||..o{ assets : "templateId"
|
|
companies ||..o{ assets : "companyId"
|
|
company_sites |o..o{ assets : "siteId"
|
|
```
|
|
|
|
## Compañías y personas
|
|
|
|
Tablas propias: `companies`, `company_contacts`, `company_departments`, `company_logos`, `company_sites`, `department_assignment_revisions`, `person_department_assignments`, `person_photos`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
company_departments {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
company_logos {
|
|
char companyId PK,FK
|
|
}
|
|
company_sites {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
department_assignment_revisions {
|
|
char id PK
|
|
char assignmentId FK
|
|
}
|
|
person_department_assignments {
|
|
char id PK
|
|
char companyId FK
|
|
char personId FK
|
|
char departmentId FK
|
|
}
|
|
person_photos {
|
|
char personId PK,FK
|
|
char companyId FK
|
|
}
|
|
companies ||..o{ company_contacts : "companyId"
|
|
companies ||..o{ company_departments : "companyId"
|
|
companies ||..o| company_logos : "companyId"
|
|
companies ||..o{ company_sites : "companyId"
|
|
person_department_assignments ||..o{ department_assignment_revisions : "assignmentId"
|
|
companies ||..o{ person_department_assignments : "companyId"
|
|
company_contacts ||..o{ person_department_assignments : "personId, companyId"
|
|
company_departments ||..o{ person_department_assignments : "departmentId, companyId"
|
|
company_contacts ||..o| person_photos : "personId, companyId"
|
|
```
|
|
|
|
## Usuarios y sesión
|
|
|
|
Tablas propias: `http_sessions`, `identity_state`, `users`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
http_sessions {
|
|
varchar sid PK
|
|
char userId FK "nullable"
|
|
}
|
|
identity_state {
|
|
int id PK
|
|
char initialAdminId FK "nullable"
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
users |o..o{ http_sessions : "userId"
|
|
users |o..o{ identity_state : "initialAdminId"
|
|
```
|
|
|
|
## Tickets e intervenciones
|
|
|
|
Tablas propias: `intervention_counter`, `intervention_procedure_steps`, `intervention_procedures`, `intervention_revision_steps`, `intervention_revision_targets`, `intervention_revisions`, `intervention_steps`, `intervention_targets`, `intervention_template_lock`, `intervention_template_revision_steps`, `intervention_template_revisions`, `intervention_template_steps`, `intervention_templates`, `interventions`, `ticket_counter`, `ticket_revision_targets`, `ticket_revisions`, `ticket_targets`, `tickets`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
assets {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char siteId FK "nullable"
|
|
char brandId FK "nullable"
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
intervention_counter {
|
|
int id PK
|
|
}
|
|
intervention_procedure_steps {
|
|
char ownerId PK,FK
|
|
char stepId PK
|
|
}
|
|
intervention_procedures {
|
|
char interventionId PK,FK
|
|
char templateId FK
|
|
char revisionId FK
|
|
}
|
|
intervention_revision_steps {
|
|
char ownerId PK,FK
|
|
char stepId PK
|
|
}
|
|
intervention_revision_targets {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
char personId FK "nullable"
|
|
char workstationId FK "nullable"
|
|
char assetId FK "nullable"
|
|
char resourceId FK "nullable"
|
|
}
|
|
intervention_revisions {
|
|
char id PK
|
|
char interventionId FK
|
|
char actorId FK
|
|
char ticketId FK "nullable"
|
|
char assigneeId FK "nullable"
|
|
}
|
|
intervention_steps {
|
|
char ownerId PK,FK
|
|
char stepId PK
|
|
}
|
|
intervention_targets {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
char personId FK "nullable"
|
|
char workstationId FK "nullable"
|
|
char assetId FK "nullable"
|
|
char resourceId FK "nullable"
|
|
}
|
|
intervention_template_lock {
|
|
int id PK
|
|
}
|
|
intervention_template_revision_steps {
|
|
char ownerId PK,FK
|
|
char stepId PK
|
|
}
|
|
intervention_template_revisions {
|
|
char id PK
|
|
char templateId FK
|
|
char actorId FK "nullable"
|
|
}
|
|
intervention_template_steps {
|
|
char ownerId PK,FK
|
|
char stepId PK
|
|
}
|
|
intervention_templates {
|
|
char id PK
|
|
char companyId FK "nullable"
|
|
}
|
|
interventions {
|
|
char id PK
|
|
char companyId FK
|
|
char ticketId FK "nullable"
|
|
char assigneeId FK "nullable"
|
|
}
|
|
resources {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char addressFieldId FK "nullable"
|
|
char contextFieldId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char referenceFieldId FK "nullable"
|
|
char resourceTypeId FK "nullable"
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
}
|
|
ticket_counter {
|
|
int id PK
|
|
}
|
|
ticket_revision_targets {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
char personId FK "nullable"
|
|
char workstationId FK "nullable"
|
|
char assetId FK "nullable"
|
|
char resourceId FK "nullable"
|
|
}
|
|
ticket_revisions {
|
|
char id PK
|
|
char ticketId FK
|
|
char actorId FK
|
|
char requesterId FK "nullable"
|
|
char assigneeId FK "nullable"
|
|
}
|
|
ticket_targets {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
char personId FK "nullable"
|
|
char workstationId FK "nullable"
|
|
char assetId FK "nullable"
|
|
char resourceId FK "nullable"
|
|
}
|
|
tickets {
|
|
char id PK
|
|
char companyId FK
|
|
char requesterId FK "nullable"
|
|
char assigneeId FK "nullable"
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
workstations {
|
|
char id PK
|
|
char companyId FK
|
|
char siteId FK "nullable"
|
|
char personId FK "nullable"
|
|
char computerAssetId FK "nullable"
|
|
}
|
|
intervention_procedures ||..o{ intervention_procedure_steps : "ownerId"
|
|
intervention_template_revisions ||..o{ intervention_procedures : "revisionId"
|
|
intervention_template_revisions ||..o{ intervention_procedures : "templateId, revisionId"
|
|
intervention_templates ||..o{ intervention_procedures : "templateId"
|
|
interventions ||..o| intervention_procedures : "interventionId"
|
|
intervention_revisions ||..o{ intervention_revision_steps : "ownerId"
|
|
assets |o..o{ intervention_revision_targets : "assetId"
|
|
company_contacts |o..o{ intervention_revision_targets : "personId"
|
|
intervention_revisions ||..o{ intervention_revision_targets : "ownerId"
|
|
resources |o..o{ intervention_revision_targets : "resourceId"
|
|
workstations |o..o{ intervention_revision_targets : "workstationId"
|
|
interventions ||..o{ intervention_revisions : "interventionId"
|
|
tickets |o..o{ intervention_revisions : "ticketId"
|
|
users ||..o{ intervention_revisions : "actorId"
|
|
users |o..o{ intervention_revisions : "assigneeId"
|
|
interventions ||..o{ intervention_steps : "ownerId"
|
|
assets |o..o{ intervention_targets : "assetId"
|
|
company_contacts |o..o{ intervention_targets : "personId"
|
|
interventions ||..o{ intervention_targets : "ownerId"
|
|
resources |o..o{ intervention_targets : "resourceId"
|
|
workstations |o..o{ intervention_targets : "workstationId"
|
|
intervention_template_revisions ||..o{ intervention_template_revision_steps : "ownerId"
|
|
intervention_templates ||..o{ intervention_template_revisions : "templateId"
|
|
users |o..o{ intervention_template_revisions : "actorId"
|
|
intervention_templates ||..o{ intervention_template_steps : "ownerId"
|
|
companies |o..o{ intervention_templates : "companyId"
|
|
companies ||..o{ interventions : "companyId"
|
|
tickets |o..o{ interventions : "ticketId"
|
|
users |o..o{ interventions : "assigneeId"
|
|
assets |o..o{ ticket_revision_targets : "assetId"
|
|
company_contacts |o..o{ ticket_revision_targets : "personId"
|
|
resources |o..o{ ticket_revision_targets : "resourceId"
|
|
ticket_revisions ||..o{ ticket_revision_targets : "ownerId"
|
|
workstations |o..o{ ticket_revision_targets : "workstationId"
|
|
company_contacts |o..o{ ticket_revisions : "requesterId"
|
|
tickets ||..o{ ticket_revisions : "ticketId"
|
|
users ||..o{ ticket_revisions : "actorId"
|
|
users |o..o{ ticket_revisions : "assigneeId"
|
|
assets |o..o{ ticket_targets : "assetId"
|
|
company_contacts |o..o{ ticket_targets : "personId"
|
|
resources |o..o{ ticket_targets : "resourceId"
|
|
tickets ||..o{ ticket_targets : "ownerId"
|
|
workstations |o..o{ ticket_targets : "workstationId"
|
|
companies ||..o{ tickets : "companyId"
|
|
company_contacts |o..o{ tickets : "requesterId"
|
|
users |o..o{ tickets : "assigneeId"
|
|
```
|
|
|
|
## Procesos de personas
|
|
|
|
Tablas propias: `person_process_revision_tasks`, `person_process_revisions`, `person_process_tasks`, `person_processes`, `process_catalog_lock`, `process_template_instructions`, `process_template_revision_instructions`, `process_template_revisions`, `process_templates`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
person_process_revision_tasks {
|
|
char ownerId PK,FK
|
|
char taskId PK
|
|
}
|
|
person_process_revisions {
|
|
char id PK
|
|
char actorId FK "nullable"
|
|
char itemId FK
|
|
char personId FK "nullable"
|
|
char templateId FK "nullable"
|
|
}
|
|
person_process_tasks {
|
|
char ownerId PK,FK
|
|
char taskId PK
|
|
}
|
|
person_processes {
|
|
char id PK
|
|
char companyId FK
|
|
char personId FK
|
|
char templateId FK
|
|
}
|
|
process_catalog_lock {
|
|
int id PK
|
|
}
|
|
process_template_instructions {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
}
|
|
process_template_revision_instructions {
|
|
char ownerId PK,FK
|
|
int position PK
|
|
}
|
|
process_template_revisions {
|
|
char id PK
|
|
char actorId FK "nullable"
|
|
char itemId FK
|
|
}
|
|
process_templates {
|
|
char id PK
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
person_process_revisions ||..o{ person_process_revision_tasks : "ownerId"
|
|
company_contacts |o..o{ person_process_revisions : "personId"
|
|
person_processes ||..o{ person_process_revisions : "itemId"
|
|
process_templates |o..o{ person_process_revisions : "templateId"
|
|
users |o..o{ person_process_revisions : "actorId"
|
|
person_processes ||..o{ person_process_tasks : "ownerId"
|
|
companies ||..o{ person_processes : "companyId"
|
|
company_contacts ||..o{ person_processes : "personId"
|
|
process_templates ||..o{ person_processes : "templateId"
|
|
process_templates ||..o{ process_template_instructions : "ownerId"
|
|
process_template_revisions ||..o{ process_template_revision_instructions : "ownerId"
|
|
process_templates ||..o{ process_template_revisions : "itemId"
|
|
users |o..o{ process_template_revisions : "actorId"
|
|
```
|
|
|
|
## Teletrabajo y conexiones remotas
|
|
|
|
Tablas propias: `remote_connection_revisions`, `remote_connections`, `telework_authorization_revisions`, `telework_authorizations`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
assets {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char siteId FK "nullable"
|
|
char brandId FK "nullable"
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
company_sites {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
remote_connection_revisions {
|
|
char id PK
|
|
char connectionId FK
|
|
char actorId FK
|
|
char personId FK "nullable"
|
|
char sourceAssetId FK "nullable"
|
|
char targetAssetId FK "nullable"
|
|
char targetResourceId FK "nullable"
|
|
char siteId FK "nullable"
|
|
}
|
|
remote_connections {
|
|
char id PK
|
|
char companyId FK
|
|
char personId FK
|
|
char sourceAssetId FK "nullable"
|
|
char targetAssetId FK "nullable"
|
|
char targetResourceId FK "nullable"
|
|
char siteId FK "nullable"
|
|
}
|
|
resources {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char addressFieldId FK "nullable"
|
|
char contextFieldId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char referenceFieldId FK "nullable"
|
|
char resourceTypeId FK "nullable"
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
}
|
|
telework_authorization_revisions {
|
|
char id PK
|
|
char authorizationId FK
|
|
char actorId FK
|
|
char personId FK "nullable"
|
|
}
|
|
telework_authorizations {
|
|
char id PK
|
|
char companyId FK
|
|
char personId FK
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
assets |o..o{ remote_connection_revisions : "sourceAssetId"
|
|
assets |o..o{ remote_connection_revisions : "targetAssetId"
|
|
company_contacts |o..o{ remote_connection_revisions : "personId"
|
|
company_sites |o..o{ remote_connection_revisions : "siteId"
|
|
remote_connections ||..o{ remote_connection_revisions : "connectionId"
|
|
resources |o..o{ remote_connection_revisions : "targetResourceId"
|
|
users ||..o{ remote_connection_revisions : "actorId"
|
|
assets |o..o{ remote_connections : "sourceAssetId"
|
|
assets |o..o{ remote_connections : "targetAssetId"
|
|
companies ||..o{ remote_connections : "companyId"
|
|
company_contacts ||..o{ remote_connections : "personId"
|
|
company_sites |o..o{ remote_connections : "siteId"
|
|
resources |o..o{ remote_connections : "targetResourceId"
|
|
company_contacts |o..o{ telework_authorization_revisions : "personId"
|
|
telework_authorizations ||..o{ telework_authorization_revisions : "authorizationId"
|
|
users ||..o{ telework_authorization_revisions : "actorId"
|
|
companies ||..o{ telework_authorizations : "companyId"
|
|
company_contacts ||..o| telework_authorizations : "personId"
|
|
```
|
|
|
|
## Recursos y catálogo
|
|
|
|
Tablas propias: `resource_availability`, `resource_catalogs`, `resource_characteristics`, `resource_definitions`, `resource_field_choices`, `resource_revision_characteristics`, `resource_revisions`, `resource_specification_field_choices`, `resource_specification_fields`, `resource_specification_sections`, `resource_template_fields`, `resource_template_sections`, `resources`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
access_items {
|
|
char id PK
|
|
char workspaceId FK
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
resource_availability {
|
|
char id PK
|
|
char catalogId FK
|
|
char companyId FK
|
|
char definitionId FK
|
|
}
|
|
resource_catalogs {
|
|
char id PK
|
|
}
|
|
resource_characteristics {
|
|
char resourceId PK,FK
|
|
char fieldId PK,FK
|
|
}
|
|
resource_definitions {
|
|
char id PK
|
|
char catalogId FK
|
|
char companyId FK "nullable"
|
|
}
|
|
resource_field_choices {
|
|
char fieldId PK,FK
|
|
int position PK
|
|
}
|
|
resource_revision_characteristics {
|
|
char revisionId PK,FK
|
|
char resourceId FK
|
|
char fieldId PK,FK
|
|
}
|
|
resource_revisions {
|
|
char id PK
|
|
char resourceId FK
|
|
char actorId FK
|
|
char addressFieldId FK "nullable"
|
|
char contextFieldId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char referenceFieldId FK "nullable"
|
|
char resourceTypeId FK "nullable"
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
char templateId FK "nullable"
|
|
}
|
|
resource_specification_field_choices {
|
|
char resourceId PK,FK
|
|
char fieldId PK,FK
|
|
int position PK
|
|
}
|
|
resource_specification_fields {
|
|
char resourceId PK,FK
|
|
char fieldId PK,FK
|
|
}
|
|
resource_specification_sections {
|
|
char resourceId PK,FK
|
|
char id PK
|
|
}
|
|
resource_template_fields {
|
|
char id PK
|
|
char templateId FK
|
|
char fieldId FK
|
|
char sectionId FK "nullable"
|
|
}
|
|
resource_template_sections {
|
|
char id PK
|
|
char templateId PK,FK
|
|
}
|
|
resources {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char addressFieldId FK "nullable"
|
|
char contextFieldId FK "nullable"
|
|
char accountId FK "nullable"
|
|
char referenceFieldId FK "nullable"
|
|
char resourceTypeId FK "nullable"
|
|
char systemId FK "nullable"
|
|
char environmentId FK "nullable"
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
companies ||..o{ resource_availability : "companyId"
|
|
resource_catalogs ||..o{ resource_availability : "catalogId"
|
|
resource_definitions ||..o{ resource_availability : "definitionId"
|
|
resource_definitions ||..o{ resource_characteristics : "fieldId"
|
|
resources ||..o{ resource_characteristics : "resourceId"
|
|
companies |o..o{ resource_definitions : "companyId"
|
|
resource_catalogs ||..o{ resource_definitions : "catalogId"
|
|
resource_definitions ||..o{ resource_field_choices : "fieldId"
|
|
resource_definitions ||..o{ resource_revision_characteristics : "fieldId"
|
|
resource_revisions ||..o{ resource_revision_characteristics : "revisionId"
|
|
resources ||..o{ resource_revision_characteristics : "resourceId"
|
|
access_items |o..o{ resource_revisions : "accountId"
|
|
access_items |o..o{ resource_revisions : "environmentId"
|
|
access_items |o..o{ resource_revisions : "resourceTypeId"
|
|
access_items |o..o{ resource_revisions : "systemId"
|
|
resource_definitions |o..o{ resource_revisions : "addressFieldId"
|
|
resource_definitions |o..o{ resource_revisions : "contextFieldId"
|
|
resource_definitions |o..o{ resource_revisions : "referenceFieldId"
|
|
resource_definitions |o..o{ resource_revisions : "templateId"
|
|
resources ||..o{ resource_revisions : "resourceId"
|
|
users ||..o{ resource_revisions : "actorId"
|
|
resource_definitions ||..o{ resource_specification_field_choices : "fieldId"
|
|
resources ||..o{ resource_specification_field_choices : "resourceId"
|
|
resource_definitions ||..o{ resource_specification_fields : "fieldId"
|
|
resources ||..o{ resource_specification_fields : "resourceId"
|
|
resources ||..o{ resource_specification_sections : "resourceId"
|
|
resource_definitions ||..o{ resource_template_fields : "fieldId"
|
|
resource_definitions ||..o{ resource_template_fields : "templateId"
|
|
resource_template_sections |o..o{ resource_template_fields : "templateId, sectionId"
|
|
resource_definitions ||..o{ resource_template_sections : "templateId"
|
|
access_items |o..o{ resources : "accountId"
|
|
access_items |o..o{ resources : "environmentId"
|
|
access_items |o..o{ resources : "resourceTypeId"
|
|
access_items |o..o{ resources : "systemId"
|
|
companies ||..o{ resources : "companyId"
|
|
resource_definitions |o..o{ resources : "addressFieldId"
|
|
resource_definitions |o..o{ resources : "contextFieldId"
|
|
resource_definitions |o..o{ resources : "referenceFieldId"
|
|
resource_definitions ||..o{ resources : "templateId"
|
|
```
|
|
|
|
## Perfiles de usuario
|
|
|
|
Tablas propias: `work_profile_revisions`, `work_profiles`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
access_items {
|
|
char id PK
|
|
char workspaceId FK
|
|
}
|
|
assets {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char siteId FK "nullable"
|
|
char brandId FK "nullable"
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
work_profile_revisions {
|
|
char id PK
|
|
char profileId FK
|
|
char accountId FK "nullable"
|
|
char actorId FK
|
|
char personId FK "nullable"
|
|
char assetId FK "nullable"
|
|
}
|
|
work_profiles {
|
|
char id PK
|
|
char companyId FK
|
|
char personId FK
|
|
char accountId FK "nullable"
|
|
char assetId FK
|
|
}
|
|
access_items |o..o{ work_profile_revisions : "accountId"
|
|
assets |o..o{ work_profile_revisions : "assetId"
|
|
company_contacts |o..o{ work_profile_revisions : "personId"
|
|
users ||..o{ work_profile_revisions : "actorId"
|
|
work_profiles ||..o{ work_profile_revisions : "profileId"
|
|
access_items |o..o{ work_profiles : "accountId"
|
|
assets ||..o{ work_profiles : "assetId"
|
|
companies ||..o{ work_profiles : "companyId"
|
|
company_contacts ||..o{ work_profiles : "personId"
|
|
```
|
|
|
|
## Puestos de trabajo
|
|
|
|
Tablas propias: `workstation_assets`, `workstation_members`, `workstation_revision_members`, `workstation_revisions`, `workstations`.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
direction LR
|
|
assets {
|
|
char id PK
|
|
char companyId FK
|
|
char templateId FK
|
|
char siteId FK "nullable"
|
|
char brandId FK "nullable"
|
|
}
|
|
companies {
|
|
char id PK
|
|
}
|
|
company_contacts {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
company_sites {
|
|
char id PK
|
|
char companyId FK
|
|
}
|
|
users {
|
|
char id PK
|
|
}
|
|
workstation_assets {
|
|
char workstationId PK,FK
|
|
char companyId FK
|
|
char assetId PK,FK
|
|
}
|
|
workstation_members {
|
|
char workstationId PK,FK
|
|
char assetId PK,FK
|
|
}
|
|
workstation_revision_members {
|
|
char revisionId PK,FK
|
|
char assetId PK,FK
|
|
}
|
|
workstation_revisions {
|
|
char id PK
|
|
char workstationId FK
|
|
char actorId FK
|
|
char siteId FK "nullable"
|
|
char personId FK "nullable"
|
|
char computerAssetId FK "nullable"
|
|
}
|
|
workstations {
|
|
char id PK
|
|
char companyId FK
|
|
char siteId FK "nullable"
|
|
char personId FK "nullable"
|
|
char computerAssetId FK "nullable"
|
|
}
|
|
assets ||..o{ workstation_assets : "assetId"
|
|
assets ||..o{ workstation_assets : "companyId, assetId"
|
|
companies ||..o{ workstation_assets : "companyId"
|
|
workstations ||..o{ workstation_assets : "companyId, workstationId"
|
|
workstations ||..o{ workstation_assets : "workstationId"
|
|
assets ||..o{ workstation_members : "assetId"
|
|
workstations ||..o{ workstation_members : "workstationId"
|
|
assets ||..o{ workstation_revision_members : "assetId"
|
|
workstation_revisions ||..o{ workstation_revision_members : "revisionId"
|
|
assets |o..o{ workstation_revisions : "computerAssetId"
|
|
company_contacts |o..o{ workstation_revisions : "personId"
|
|
company_sites |o..o{ workstation_revisions : "siteId"
|
|
users ||..o{ workstation_revisions : "actorId"
|
|
workstations ||..o{ workstation_revisions : "workstationId"
|
|
assets |o..o{ workstations : "computerAssetId"
|
|
companies ||..o{ workstations : "companyId"
|
|
company_contacts |o..o{ workstations : "personId"
|
|
company_sites |o..o{ workstations : "siteId"
|
|
```
|
|
|
|
## Observaciones del esquema físico
|
|
|
|
Los 132 objetos consultados son **130 tablas y 2 vistas SQL**: `access_current_values` y `access_historical_values`. Las vistas no tienen FK propias y se representan como objetos independientes; no se inventan relaciones físicas para ellas.
|
|
|
|
Se han encontrado **17 relaciones con varias restricciones FK equivalentes**: 699 restricciones adicionales. Se han agrupado únicamente en la representación; no se han eliminado. El diccionario conserva todos los nombres de restricciones. Conviene revisar por separado el origen de estas duplicaciones.
|
|
|
|
Solo se dibujan relaciones declaradas en MariaDB. Un identificador sin FK no implica una relación física garantizada; las referencias polimórficas y las validaciones de aplicación pueden tener relaciones adicionales. Las tablas de revisiones forman parte del esquema actual y se incluyen. Esta documentación no implica que exista ya la auditoría centralizada diseñada para una implementación futura.
|
|
|
|
## Validación
|
|
|
|
Generación verificada contra la misma captura de metadatos: 130 tablas y 2 vistas SQL, 999 columnas y 355 relaciones distintas incluidas en el archivo completo; todas las tablas asignadas a un área. Las reglas ON DELETE/ON UPDATE se recogen en el diccionario. No se han ejecutado migraciones ni cambios de datos.
|