💡 Introducción
En el mundo del diseño de datos, a menudo nos encontramos con entidades que tienen una relación intrínseca con ellas mismas. ¿Cómo representamos que un empleado tiene un jefe que también es empleado? ¿O que una cuenta empresarial es la «empresa matriz» de otra? Aquí es donde entra el Self-referencing Lookup. Esta técnica permite crear una relación de muchos a uno (N:1) donde la tabla de origen y la de destino son la misma, permitiendo construir estructuras jerárquicas potentes y escalables.
💻 Conceptos y Casos de Uso
Un Self-referencing Lookup no es más que una columna de tipo Lookup que apunta a la misma tabla en la que se crea. Esto rompe la estructura plana de los datos y permite la recursividad.
Escenarios Comunes de Implementación
- Recursos Humanos: La columna «Manager» en la tabla de Empleados.
- Ventas: La «Cuenta Principal» (Parent Account) en la tabla de Cuentas.
- Gestión de Proyectos: «Tarea Padre» para desglosar actividades en subtareas.
🛠️ Visualización de Jerarquías
Una de las grandes ventajas de configurar estas relaciones en Dataverse es la capacidad de habilitar la Visualización Jerárquica. En las Model-Driven Apps, esto permite a los usuarios ver un organigrama o diagrama de árbol directamente desde la interfaz, simplemente haciendo clic en el icono de jerarquía junto al nombre del registro.
| Característica | Relación Estándar (Tablas A y B) | Self-referencing (Tabla A y A) |
| Origen | Tabla A | Tabla A |
| Destino | Tabla B | Tabla A |
| Uso Principal | Vinculación de procesos distintos | Creación de niveles y jerarquías |
| Visualización | Formularios y Subgrillas | Diagramas de árbol (Hierarchical View) |
🛠️ Configuración Técnica
Para que una relación autorreferencial sea tratada como una jerarquía oficial en Dataverse, se debe:
- Crear la columna de búsqueda apuntando a la misma tabla.
- Acceder a la configuración de la relación y marcarla como Jerárquica (Hierarchical: Yes). Nota: Solo una relación por tabla puede ser definida como jerárquica.
✍️ Mini Ejercicio Práctico: Estructura de Subtareas
Vamos a crear una estructura donde una tarea pueda depender de otra:
- En Dataverse, abre la tabla Task (Tarea) o crea una nueva.
- Crea una nueva columna llamada
Tarea Principal. - En Data type, elige Lookup y en Related table, selecciona la misma tabla (Task).
- Guarda la tabla.
- Crea dos registros: «Proyecto Alfa» y «Fase de Diseño».
- En el registro «Fase de Diseño», usa el campo
Tarea Principalpara buscar y seleccionar «Proyecto Alfa». - ¡Listo! Has creado el primer nivel de tu jerarquía.
📚 Fuentes Consultadas
📌 Conclusión
El Self-referencing Lookup es el puente entre una base de datos plana y una arquitectura de datos inteligente. Entender cómo y cuándo aplicarlo permite que nuestras aplicaciones reflejen la realidad de las organizaciones de manera natural y visual. ¿Has implementado ya visualizaciones jerárquicas para mejorar la navegación de tus usuarios?


Deja un comentario