Relaciones entre tablas

Las relaciones entre tablas definen cómo se pueden relacionar las filas entre sí en la base de datos. En el nivel más simple, 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 poner 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.

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

  • Cuando borro una fila, ¿deberían borrarse 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 agilizar el proceso de entrada de datos cuando creo 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 pueden también participar en una relación de N:N (varios a varios) donde cualquier número de filas de dos tablas pueden asociarse entre sí.

Decida si se deben usar relaciones o conexiones de tabla

Las relaciones de tabla son metadatos que realizan cambios en la base de datos. Estas relaciones permiten que las consultas recuperen datos relacionados de manera eficaz. Use las relaciones entre tablas para definir las relaciones formales que definen la tabla o que puedan usar la mayoría de las filas. Por ejemplo, una oportunidad sin un cliente potencial no será útil. La tabla Oportunidad también tiene una relación de N:N con la tabla Competidor. Esto permite que varios competidores se agreguen a la oportunidad. Es posible que desee capturar estos datos y para crear un informe que muestre los competidores.

Hay otros tipos menos formales de relaciones entre filas que se denominan conexiones. Por ejemplo, puede resultar útil saber si dos contactos están casados, o quizás son amigos fuera del trabajo o quizás un contacto suele trabajar con 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: Configurar valores de conexión

Tipos de relaciones entre tablas

Al mirar el explorador de soluciones es posible que piense que existen tres tipos de relaciones entre tablas. Realmente solo hay dos, como se muestra en la siguiente tabla.

Tipo de relación Descripción
1:N (uno a varios) Una relación de tabla donde una fila de la tabla para la tabla primaria se puede asociar a muchas otras filas de tabla relacionada 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 esta.

En el portal de Power Apps, Tabla actual representa la tabla principal.
N:N (varios a varios) Una relación de tabla que depende de una Tabla de relación especial, a veces llamada tabla de intersección, para que varias filas de una tabla se puedan relacionar con varias filas de otra tabla.

Al visualizar las filas registros 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 1:N existen entre tablas y se refieren a cada tabla como Tabla principal/actual o Tabla relacionada. La tabla relacionada, a veces llamada tabla secundaria, tiene una columna de búsqueda que permite almacenar una referencia a una fila desde la tabla principal, a veces llamada tabla primaria. Una relación de N:1 es solo una relación 1:N vista desde la tabla relacionada.

Comportamiento de relación entre tablas

Los comportamientos de las tablas relacionadas es importante porque ayuda a garantizar la integridad de los datos segura y puede automatizar los procesos de negocio para su empresa.

Preservación de la integridad de los datos

Algunas tablas existen para admitir otras tablas. No tienen sentido por sí solas. Tendrán normalmente una columna de búsqueda requerida para vincularlo a la tabla principal que admiten. ¿Qué debe suceder cuando una fila principal se elimina?

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: Agregar comportamiento de las relaciones avanzadas

Automatizar los procesos empresariales.

Digamos que tiene un nuevo comercial y que desea asignarle varias cuentas existentes actualmente asignadas a otro comercial. Cada fila de cuenta puede tener varias actividades de tareas asociadas. Puede buscar fácilmente las cuentas activas que desea reasignar y asignarlas al nuevo comercial. ¿Qué sucedería con cualquiera de estas actividades de tareas asociadas con 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 asociados a cuentas que está reasignando. Sus opciones son:

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

La relación puede controlar el modo en que las acciones realizadas en una fila para la fila de tabla principal se ponen en cascada en las filas de tabla relacionadas.

Comportamientos

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

Comportamiento Descripción
Poner activa en cascada Realiza la acción en todas las filas de tabla relacionadas activas.
Poner todas en cascada Realiza la acción en todas las filas de tabla relacionadas.
No poner ninguna en cascada No hacer nada.
Quitar vínculo Quite el valor de búsqueda para todas las filas relacionadas.
Restringida Impide que la fila de tabla principal se elimine cuando existen filas de tabla relacionadas.
Poner en cascada las que pertenecen al usuario Realiza una acción en todas las filas de tabla relacionadas que pertenecen al mismo usuario que la fila de tabla principal.

Acciones

Estos son las acciones que pueden desencadenar determinados comportamientos:

Columna Descripción Opciones
Asignar ¿Qué debe suceder cuando la fila de tabla principal se asigna a otra persona? Poner todo en cascada
Poner los elementos activos en cascada
Poner en cascada las que pertenecen al usuario
No poner ninguna en cascada
Cambiar primario ¿Qué debe suceder cuando cambia el valor de búsqueda de una tabla relacionada en una relación jerárquica?
Más información: Relaciones jerárquicas entre tablas
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 suceder cuando la fila de tabla principal se comparte? 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 suceder cuando la fila de tabla principal se elimina? Poner todo en cascada
Desvincular artículo
Restringida
Dejar de compartir ¿Qué debe suceder cuando una fila de tabla principal se deja de compartir? Poner todo en cascada
Poner los elementos activos en cascada
Poner en cascada las que pertenecen al usuario
No poner nada en cascada
Combinar ¿Qué debe suceder cuando una fila de tabla principal se combina? Poner todo en cascada
No poner nada en cascada
Vista de informe ¿Cuál es el comportamiento deseado de la vista de informe asociada a esta relación? Poner todas en cascada
Poner activa en cascada
Poner en cascada las que pertenecen al usuario
No poner ninguna en cascada

Nota

Las acciones Asignar, Eliminar, Combinar y Cambiar primario no se ejecutarán en las siguientes situaciones:

  • Si la fila principal original y la acción solicitada contienen los mismos valores. Ejemplo: intentar activar 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

Nota

Al ejecutar una asignación, cualquier flujo de trabajo o regla comercial que esté actualmente activo en las filas se desactivará automáticamente cuando se produzca la reasignación. El nuevo propietario de la fila deberá 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 pueden tener una relación de 1:N pueden tener varias relaciones de 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 jerárquica entre tablas es cualquier relación de 1:N en la que una de las opciones en cascada en la columna Jerárquica de la siguiente tabla es verdadera.

Para Jerárquica No jerárquica
Asignar Poner todas en cascada
Poner en cascada las que pertenecen al usuario
Poner activa en cascada
No poner ninguna en cascada
Eliminar Poner todas en cascada RemoveLink
Restringir
Cambiar primario Poner todas en cascada
Poner en cascada las que pertenecen al usuario
Poner activa en cascada
No poner ninguna en cascada
Compartir Poner todas en cascada
Poner en cascada las que pertenecen al usuario
Poner activa en cascada
No poner ninguna en cascada
Dejar de compartir Poner todas 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 1:N entre tablas con la tabla de cuenta en la que la tabla personalizada es la tabla relacionada, puede configurar las acciones para que dicha relación entre tablas use las opciones de la columna Jerárquica. Si más adelante agrega otra relación de 1:N entre tablas con la tabla personalizada como la tabla de referencia, solo puede configurar las acciones para que usen las opciones de la columna No jerárquica.

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 puede permitir que una relación sea más de un tipo de tabla.

Por ejemplo, si una tabla tiene una búsqueda de cliente que pueda hacer referencia a un contacto o a la tabla de cuenta. 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 en una relación con una tabla del sistema relacionada que esté en cascada. Esto quiere decir que no puede tener una relación con alguna acción establecida en Poner todas en cascada, Poner activa en cascada o Poner en cascada las que pertenecen al usuario entre una tabla personalizada principal y una tabla del sistema relacionada.
  • Ninguna relación nueva puede tener alguna acción establecida en Poner todas en cascada, Poner activa en cascada o Poner en cascada las que pertenecen al usuario si la tabla relacionada de esa relación ya existe como tabla relacionada en otra relación que tenga alguna acción establecida en Poner todas en cascada, Poner activa en cascada o Poner en cascada las que pertenecen al usuario. 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 el diseño que requiera un cambio en la configuración del comportamiento en cascada.

Cuando una relación de tabla usa Reparent o Share, y el comportamiento en cascada cambia a Cascada Ninguno, la relación de la tabla evita que los nuevos cambios de permisos se transmitan en cascada a las tablas secundarias relacionadas. Además, se deben revocar los permisos heredados que se concedieron 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 heredados que quedan después de que se cambia el comportamiento en cascada a Cascada ninguno. Esta limpieza no afectará a ningún usuario al que se le haya otorgado acceso directo a una tabla, pero eliminará el acceso de cualquiera que haya recibido acceso solo a través de herencia.

Así es como 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 les otorgó acceso a las tablas relacionadas mediante acceso heredado.
  3. Comprueba los usuarios a los que se les dio acceso directo a una tabla relacionada y los elimina de la colección.
  4. Elimina el acceso heredado de los usuarios recopilados en las tablas recopiladas.

Después de que se ejecuta la limpieza, los usuarios que pudieron acceder a las tablas relacionadas solo debido a la función en cascada ya no pueden acceder a las filas, lo que garantiza una mayor seguridad. Hay casos en los que la limpieza puede no tener éxito. Más información sobre cómo limpiar acceso heredados

Consulte también

Supervisar trabajos 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

Nota

¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)

La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).