Compartir a través de


Relaciones de tabla de Microsoft Dataverse

Las relaciones de tabla de Microsoft Dataverse definen las formas en que las filas de tabla se pueden asociar a filas de otras tablas o a la misma tabla. Hay dos tipos de relaciones de tabla:

Relaciones de uno a varios

En una relación de tablas de una a varias, muchas filas de tablas que referencian (relacionadas) se pueden asociar con una sola fila de tabla (primaria) a la que se hace referencia. La fila de tabla a la que se hace referencia se conoce a veces como "padre" y las filas de la tabla que hacen referencia se conocen como "hijos". Una relación de varios a uno es tan solo la perspectiva secundaria de una relación de uno a varios.

Por ejemplo, en un escenario educativo, varios cursos pueden impartirse en un solo aula, por lo que la tabla de clases tendría una relación uno a varios con la tabla de cursos.

Relaciones de varios a varios

En una relación de tablas de varias a varias, muchas filas de tablas se pueden asociar con otras muchas filas de tablas. Las filas relacionadas mediante el uso de relaciones de varios a varios pueden considerarse iguales y la relación es recíproca.

Por ejemplo, en el mismo escenario escolar mencionado anteriormente, un solo alumno puede inscribirse en varios cursos y cada curso puede tener varios alumnos. Este tipo de relación permite asociaciones de datos más complejas y se administra mediante Power Apps en Dataverse.

Funcionamiento de las relaciones en Dataverse

Las relaciones de tabla definen cómo se pueden relacionar las filas de tabla entre sí en Dataverse. En el nivel más sencillo, agregar una columna de búsqueda a una tabla crea una nueva relación 1:N (uno a varios) entre las dos tablas y le permite colocar esa columna de búsqueda en un formulario. Con la columna de búsqueda, los usuarios pueden asociar varias filas secundarias de esa tabla a una sola fila de tabla primaria .

Además de definir simplemente cómo se pueden relacionar las filas con otras filas, las relaciones de tabla 1:N también proporcionan datos para abordar las siguientes preguntas:

  • Al eliminar una fila, ¿se deben eliminar también las filas relacionadas con esa fila?
  • Cuando asigno una fila, ¿también necesito asignar todas las filas relacionadas con esa fila al nuevo propietario?
  • ¿Cómo puedo simplificar el proceso de entrada de datos al crear una nueva fila relacionada en el contexto de una fila existente?
  • ¿Cómo deberían ver las personas que ven una fila las filas asociadas?

Las tablas también pueden participar en una relación N:N (muchos a muchos) donde cualquier número de filas para dos tablas pueden asociarse entre sí.

Decidir si se van a usar las relaciones de tabla o las conexiones

Las relaciones de tabla son metadatos que realizan cambios en Dataverse. Estas relaciones permiten que las consultas recuperen los datos relacionados de forma eficaz. Use relaciones de tabla para definir relaciones formales que definen la tabla o que la mayoría de las filas pueden usar. Por ejemplo, una oportunidad sin un cliente potencial no sería útil. La tabla de oportunidades de Dynamics 365 for Sales también tiene una relación N:N con la tabla de competidores, también disponible con Dynamics 365 for Sales. Esto permite que varios competidores se agreguen a la oportunidad. Es posible que quiera capturar estos datos y crear un informe que muestre a los competidores.

Hay otros tipos menos formales de relaciones entre filas que se denominan conexiones. Por ejemplo, puede ser útil saber si dos contactos están casados, o quizás son amigos fuera del trabajo, o quizás un contacto usado para trabajar para otra cuenta. La mayoría de los negocios no generarán informes con este tipo de información ni requerirán que se introduzca, por lo que es posible que no valga la pena crear relaciones entre tablas. Más información: Configuración de roles de conexión

Tipos de relaciones de tabla

Al ver las relaciones en Power Apps, puede pensar que hay tres tipos de relaciones de tabla. Realmente solo hay dos, como se muestra en la siguiente tabla.

Tipo de relación Description
1:N (uno a varios) Una relación de tabla en la que una fila de tabla de la tabla principal se puede asociar a muchas otras filas de tabla relacionadas debido a una columna de búsqueda en la tabla relacionada.

Al ver una fila de tabla principal, puede ver una lista de las filas de tabla relacionadas asociadas a ella.

En el portal de Power Apps, la tabla Actual representa la tabla principal.
N:N (varios a varios) Relación de tabla que depende de una tabla Relationship especial, a veces denominada tabla Intersect, por lo que muchas filas de una tabla pueden estar relacionadas con muchas filas de otra tabla.

Al ver filas de cualquiera de las tablas en una relación N:N, puede ver una lista de las filas de la otra tabla que están relacionadas con ella.

El tipo de relación N:1 (varios a uno) existe en la interfaz de usuario porque el diseñador muestra una vista agrupada por tablas. Las relaciones de 1:N existen en realidad entre tablas y se refieren a cada tabla como una tabla principal/actual o tabla relacionada. La tabla relacionada, a veces denominada tabla secundaria , tiene una columna de búsqueda que permite almacenar una referencia a una fila de la tabla principal, a veces denominada tabla primaria . Una relación N:1 es solo una relación 1:N vista de la tabla relacionada.

Comportamiento de relación entre tablas

Los comportamientos de las tablas relacionadas son importantes porque ayudan a garantizar la integridad de los datos y pueden automatizar los procesos empresariales automáticamente.

Preservación de la integridad de los datos

Existen algunas tablas que están destinadas a soportar a otras tablas. No tienen sentido por sí mismos. Normalmente, tendrán una columna de búsqueda necesaria para vincular a la tabla principal que admiten. ¿Qué debe ocurrir cuando se elimina una fila principal?

Puede usar el comportamiento de la relación para definir qué sucede a las filas relacionadas según las reglas para su negocio. Más información: Adición de un comportamiento de relación avanzado

Automatizar los procesos empresariales.

Supongamos que tiene un nuevo vendedor y quiere asignarles una serie de cuentas existentes asignadas actualmente a otro vendedor. Cada fila de cuenta puede tener varias actividades de tareas asociadas. Puede localizar fácilmente las cuentas activas que desea reasignar y asignarlas al nuevo vendedor. ¿Pero qué debe ocurrir para cualquiera de las actividades de tareas asociadas a las cuentas? ¿Desea abrir todas las tareas y decidir si también deben asignarse al nuevo comercial? Probablemente no. En su lugar, puede permitir que la relación aplique algunas reglas estándar automáticamente. Estas reglas solo se aplican a las filas de tareas asociadas a las cuentas que va a reasignar. Sus opciones son:

  • Reasignar todas las tareas activas.
  • Reasignar todas las tareas.
  • No reasignar ninguna de las tareas.
  • Reasigna todas las tareas asignadas actualmente al propietario anterior de las cuentas.

La relación puede controlar cómo las acciones realizadas en una fila de la tabla principal se propagan a cualquier fila de tabla relacionada.

Behaviors

Hay varios tipos de comportamientos que se pueden aplicar cuando se producen determinadas acciones.

Comportamiento Description
Cascade Active Realice la acción en las filas activas y relacionadas de la tabla.
Cascade All Realice la acción en todas las filas de la tabla relacionadas.
Cascade None No hacer nada.
Quitar vínculo Quite el valor de búsqueda para todas las filas relacionadas.
Restringir Impedir que se elimine la fila de tabla principal cuando existen filas de tabla relacionadas.
Poner en cascada las que pertenecen al usuario Realice la acción en todas las filas de tabla relacionadas que pertenecen al mismo usuario que la fila de tabla principal.

Acciones

Estas son las acciones que pueden desencadenar determinados comportamientos:

Columna Description Options
Asignar ¿Qué debe ocurrir cuando se asigna la fila de tabla principal a otra persona? Poner todo en cascada
Poner los elementos activos en cascada
Poner en cascada las que pertenecen al usuario
No poner nada en cascada
Cambiar primario ¿Qué debe ocurrir cuando se cambia el valor de búsqueda de una tabla relacionada en una relación parental?
Más información: Relaciones de tabla parental
Poner todo en cascada
Poner los elementos activos en cascada
Poner en cascada las que pertenecen al usuario
No poner nada en cascada
Compartir. ¿Qué debe ocurrir cuando se comparte la fila de tabla principal? Poner todo en cascada
Poner los elementos activos en cascada
Poner en cascada las que pertenecen al usuario
No poner nada en cascada
Eliminar ¿Qué debe ocurrir cuando se elimina la fila de tabla principal? Poner todo en cascada
Desvincular artículo
Restringida
Dejar de compartir ¿Qué debe ocurrir cuando no se comparte una fila de tabla principal? Poner todo en cascada
Poner los elementos activos en cascada
Propiedad del usuario Cascada
No poner nada en cascada
Combinar ¿Qué debe ocurrir cuando se combina una fila de tabla principal? Poner todo en cascada
No poner nada en cascada
Vista de resumen ¿Cuál es el comportamiento deseado de la vista de acumulación asociada a esta relación? Poner todo en cascada
Poner los elementos activos en cascada
Poner en cascada las que pertenecen al usuario
No poner nada en cascada

Nota:

Las acciones Assign, Delete, Merge y Reparent no se ejecutan en las situaciones siguientes:

  • Si la fila primaria original y la acción solicitada contienen los mismos valores. Ejemplo: Intentar desencadenar una asignación y elegir un contacto que ya es el propietario de la fila.
  • Intentar realizar una acción en una fila principal que ya está ejecutando una acción en cascada.

Al ejecutar una asignación, los flujos de trabajo o las reglas de negocios que están activos actualmente en las filas se desactivan automáticamente cuando se produce la reasignación. El nuevo propietario de la fila debe reactivar el flujo de trabajo o la regla de negocio si quiere seguir usándolo.

Relaciones de tabla jerárquicas

Cada par de tablas que son aptas para tener una relación 1:N puede tener varias relaciones 1:N entre ellas. Sin embargo, generalmente solo una de esas relaciones se puede considerar como una relación jerárquica entre tablas.

Una relación de tabla parental es cualquier relación de tabla 1:N donde una de las opciones en cascada de la columna Parental de la tabla siguiente es verdadera.

Acción Jerárquica No jerárquica
Asignar Poner todo en cascada
Poner en cascada las que pertenecen al usuario
Poner los elementos activos en cascada
No poner nada en cascada
Eliminar Poner todo en cascada RemoveLink
Restringida
Cambiar primario Poner todo en cascada
Poner en cascada las que pertenecen al usuario
Poner los elementos activos en cascada
No poner nada en cascada
Compartir. Poner todo en cascada
Poner en cascada las que pertenecen al usuario
Poner los elementos activos en cascada
No poner nada en cascada
Dejar de compartir Poner todo en cascada
Poner en cascada las que pertenecen al usuario
Poner los elementos activos en cascada
No poner nada en cascada

Por ejemplo, si crea una nueva tabla personalizada y agrega una relación de tabla 1:N con la tabla de cuentas donde la tabla personalizada es la tabla relacionada, puede configurar las acciones para que esa relación de tabla use las opciones de la columna Parental . Si posteriormente añade otra relación de tabla 1:N con su tabla personalizada como tabla de referencia, solo puede configurar las acciones para usar las opciones de la columna Not Parental.

Normalmente, esto significa que para cada par de tabla solo hay una relación jerárquica. Hay algunos casos en los que la búsqueda en la tabla relacionada podría permitir una relación con más de un tipo de tabla.

Por ejemplo, si una tabla tiene una búsqueda de clientes que puede hacer referencia a una tabla de contactos o cuentas. Hay dos relaciones jerárquicas entre tablas de 1:N diferentes.

Cualquier tabla de actividad tiene un conjunto similar de relaciones jerárquicas entre tablas para tablas que pueden asociarse a través de la columna de búsqueda Referente a.

Limitaciones en comportamientos que puede establecer

Dado que son relaciones jerárquicas, existen limitaciones que debe tener presentes cuando defina las relaciones de tabla.

  • Una tabla personalizada no puede ser la tabla principal de una relación con una tabla del sistema relacionada en cascada. Esto significa que no puede tener una relación con ninguna acción establecida en Cascade All, Cascade Active o Cascade User-Owned entre una tabla personalizada principal y una tabla del sistema relacionada.
  • Ninguna nueva relación puede tener ninguna acción establecida en Cascade All, Cascade Active o Cascade User-Owned si la tabla relacionada de esa relación ya existe como una tabla relacionada en otra relación que tenga cualquier acción establecida en Cascade All, Cascade Active o Cascade User-Owned. Esto evita que se creen relaciones entre varias entidades principales.

Limpieza de derechos de acceso heredados

El uso de comportamientos en cascada de Reparent y Share es útil cuando desea proporcionar acceso a filas en tablas relacionadas. Pero puede haber un cambio en el proceso o diseño que requiera un cambio de la configuración de comportamiento en cascada.

Cuando una relación de tabla usa Reparent o Share, y el comportamiento en cascada se cambia a Cascade None, la relación de tabla impide que los nuevos cambios de permisos cambien en cascada a las tablas secundarias relacionadas. Además, se deben revocar los permisos heredados concedidos mientras el comportamiento en cascada estaba activo.

La limpieza de derechos de acceso heredados es un trabajo del sistema que limpia los derechos de acceso heredados que quedan después de que se cambia el comportamiento en cascada a Cascada ninguno. Esta limpieza no afecta a ningún usuario al que se le haya otorgado acceso directo a una tabla, pero elimina el acceso de cualquiera que haya recibido acceso solo a través de herencia.

Así funciona la limpieza de derechos de acceso heredados:

  1. Identifica y recopila todas las tablas que estaban en una relación en cascada con el padre actualizado.
  2. Identifica y recopila los usuarios a los que se concedió acceso a las tablas relacionadas a través del acceso heredado.
  3. Comprueba si hay usuarios a los que se les ha concedido acceso directo a una tabla relacionada y los quita de la colección.
  4. Quita el acceso heredado para los usuarios recopilados en las tablas recopiladas.

Una vez que se ejecuta la limpieza, los usuarios que pudieron acceder a las tablas relacionadas solo debido a la funcionalidad de cascada ya no pueden acceder a las filas, lo que garantiza una mayor seguridad. Hay casos en los que es posible que la limpieza no se realice correctamente. Más información sobre cómo limpiar el acceso heredado

Consulte también

Supervisión de tareas del sistema
Crear y editar relaciones 1:N (uno a varios) o N:1 (varios a uno)
Crear relaciones varios a varios (N:N) entre tablas