Introducción

Completado

Cuando los datos se modelan en Microsoft Dataverse, se utilizan tablas independientes para representar los distintos objetos y conceptos. Las organizaciones pueden utilizar más tablas para proteger información específica, evitar la repetición de datos, describir otras propiedades o facilitar los informes. En la medida en que los objetos de la vida real están relacionados entre sí, las relaciones se usan en Dataverse para vincular las filas entre tablas. Además, las relaciones pueden proporcionar restricciones y comportamientos que se aplicarán cuando se realicen acciones en los registros.

Básicamente, las tablas y las relaciones de Dataverse pueden trabajar en equipo para contar la historia de sus datos. Al crear una buena experiencia de usuario en una aplicación de lienzo desde Microsoft Power Apps con tablas y relaciones, es posible que quiera ocultar las complejidades innecesarias del modelo de datos. Para lograrlo, sus fórmulas y el uso de datos deben navegar de manera eficiente por las tablas a través de las relaciones. En este módulo se examinará cómo se utilizan los diferentes tipos de relaciones que ofrece Dataverse.

Escenario: espacios de trabajo compartidos de Contoso

En este módulo se utiliza un escenario empresarial habitual para demostrar cómo funcionan las relaciones de Dataverse con aplicaciones de lienzo. Contoso, como muchas empresas, tiene varias ubicaciones y permite a los empleados trabajar desde casa. En ocasiones, estos empleados necesitan ir a la oficina y precisarán un escritorio para utilizarlo durante la visita. Anteriormente, Contoso indicaba a los empleados que, al llegar, recorrieran la ubicación de la oficina para buscar un escritorio disponible. Desde entonces, la empresa ha descubierto que este tipo de sistema de espacio de trabajo compartido, en ocasiones denominado hot desking, implica algunos retos para las licencias y la asistencia de TI. Por eso, la empresa planea crear una solución que los empleados puedan usar y que les permita ver los escritorios que están disponibles y reservar uno previamente. El equipo que está creando la solución ha identificado las siguientes tablas como parte de su modelo de datos de Dataverse.

Nombre de tabla Descripción
Ubicación Esta tabla representará los edificios individuales y contendrá columnas como la dirección y el número de teléfono. Cada ubicación tendrá una persona de contacto principal.
Escritorio Esta tabla representa el escritorio real que puede reservar una persona. Los escritorios están ubicados en una ubicación específica.
Característica de escritorio Los diferentes escritorios tienen diferentes características. Por ejemplo, algunos escritorios pueden tener un altavoz y otros pueden estar situados dentro de una habitación. Se incluirá una lista estándar de características de escritorio; cada escritorio puede tener una o varias de esas características.
Usuario Los usuarios representan a personas que pueden reservar el escritorio o que pueden actuar como contacto principal de una ubicación.
Reserva Esta tabla representa la reserva de una persona para el uso de un escritorio específico en una ubicación determinada y en un intervalo de tiempo definido.

Tipos de relaciones de Dataverse

Cuando crea una relación entre tablas, el tipo de relación define las restricciones de cardinalidad de cada lado de la relación. Dataverse admite relaciones de uno a varios y de varios a varios.

Relaciones de uno a varios

La relación de uno a varios (también denominada 1:N o primario-secundario) incluye una tabla principal (primaria) que permite asociar una fila individual a muchas otras filas de tabla (secundarias) relacionadas mediante el uso de una columna de búsqueda en la tabla (secundaria) relacionada. La fila principal se denomina primaria y las filas de tabla relacionadas reciben el nombre de filas secundarias. Puede asociar una fila secundaria con una sola fila principal.

La relación de uno a varios también se conoce como relación de varios a uno (o N: 1) y en ella utilizará la relación empezando por el elemento secundario que apunta al primario. Se trata de la misma definición de relación física pero desde un ángulo diferente. En una aplicación de lienzo, si está trabajando con el registro secundario y desea mostrar una propiedad del primario, usaría la propiedad de navegación de relación de varios a uno en la fila secundaria.

De manera predeterminada, se utiliza una única tabla como primaria y la columna de búsqueda siempre apunta a una fila de esa tabla. Dataverse también admite búsquedas en varias tablas (en ocasiones denominadas búsquedas polimórficas), que permiten que un campo de búsqueda apunte a una fila de una de las múltiples tablas, lo que aporta flexibilidad para modelos de datos más complejos. Por ejemplo, puede configurar una columna de búsqueda de varias tablas creando una columna con el tipo de datos Cliente. A continuación, puede establecer el valor de búsqueda de clientes para que apunte a un contacto o a una fila de la tabla de cuenta. En todas las tablas de actividades (por ejemplo, correo electrónico, tarea, etc.), la columna correspondiente puede apuntar a cualquier tabla en la que esté habilitado el seguimiento de actividad. Además, puede utilizar el tipo de columna de Búsqueda en varias tablas para configurar una columna de búsqueda personalizada en varias tablas. Al trabajar con estas columnas de búsqueda en varias tablas en Power Apps, usará las funciones IsType y AsType de Microsoft Power Fx para determinar la tabla principal y utilizar los datos.

En el modelo de datos de ejemplo del módulo, se han definido las siguientes relaciones de uno a varios para respaldar el escenario.

Tabla principal Tabla relacionada Descripción
Ubicación Escritorio Cada escritorio está situado en una ubicación.
Usuario Ubicación Cada ubicación tiene un contacto principal.
Usuario Reserva Usuario para el que está reservado el escritorio.
Escritorio Reserva Cada reserva se realiza para un escritorio específico.

Al establecer una relación de uno a varios, también puede configurar los comportamientos de dicha relación. Los comportamientos determinan lo que debe suceder si la fila de la tabla principal se elimina, asigna, comparte, deja de compartir o reubicar con otro elemento primario. El comportamiento predeterminado es la referencia, que se configura para eliminar el vínculo entre las dos tablas si se elimina la fila de la tabla principal. Por ejemplo, la tabla Ubicación tiene varios escritorios y usa la configuración predeterminada, por lo que, si su aplicación de lienzo elimina una fila de ubicación, de manera predeterminada todos los escritorios asociados quedarán huérfanos. Si el requisito comercial es eliminar los registros de escritorio asociados cuando se elimina una ubicación, puede seleccionar la característica ForAll, que eliminará primero todos los registros de escritorio asociados. Una mejor opción sería configurar el tipo de comportamiento jerárquico en la relación. Este tipo de comportamiento elimina automáticamente los registros asociados cuando se elimina el registro primario. Este enfoque garantiza la ausencia de registros de escritorio huérfanos.

Al crear una aplicación de lienzo y usar tablas relacionadas, saber cómo se configuran los comportamientos de dicha relación le garantizará una implementación de la lógica correcta.

Relaciones de varios a varios

La relación de varios a varios (también denominada N: N) incluye una tabla oculta especial denominada tabla de relaciones que, en ocasiones, recibe el nombre de tabla de intersección. Esta tabla determina el modo en que varias filas de una tabla se pueden relacionar con varias filas de otra tabla. Las relaciones de varios a varios pueden realizar un seguimiento de la asociación, aunque no puede modificar la tabla de intersección para agregar columnas personalizadas que describan la relación.

En el ejemplo de este módulo, Escritorio y Característica de escritorio tendrían una relación de varios a varios. Todos los escritorios compartirían la lista de características de escritorio y cada escritorio podría tener una o varias características asociadas. Las relaciones de varios a varios permiten a los usuarios saber que el escritorio tiene sillas, aunque no le permitirán guardar cuántas sillas tenía cada escritorio.

En el siguiente vídeo se muestra cómo se crean relaciones entre tablas.

Una vez que haya creado todas las tablas y relaciones, el modelo de datos del escenario de ejemplo debe ser similar al siguiente diagrama.

Diagrama de un modelo de datos de ejemplo que muestra relaciones entre tablas

En el resto de este módulo se explora cómo se trabaja con este modelo de datos desde una aplicación de lienzo.