Relations de table

Effectué

Lorsque vous utilisez Microsoft Dataverse, organisez les informations en stockant différents jeux de données dans des tables distinctes pour prendre en charge la normalisation des données. Les relations de table définissent comment des lignes de table peuvent être associées à des lignes d’autres tables.

Nous avons découvert plus tôt dans ce module qu’une table de base de données a une clé primaire pour référencer de manière unique des lignes de la table. Dans Dataverse, une relation entre deux tables référence la clé primaire à l’aide d’une colonne de recherche.

Types de relations

Les relations de table définissent comment des lignes de table sont associées à des lignes d’autres tables, voire de la même table. Il existe deux types de relations de table :

  • Relations un-à-plusieurs : dans une relation de table un-à-plusieurs (1 à N), plusieurs lignes de table de référence (liées) peuvent être associées à une seule ligne de table référencée (principale). La ligne référencée est souvent appelée le parent, tandis que les lignes de la table de référence sont les enfants. Une relation plusieurs-à-un est la même structure vue à partir de la table enfant.

  • Relations plusieurs-à-plusieurs : dans une relation plusieurs-à-plusieurs (N à N), plusieurs lignes de table peuvent être associées à plusieurs lignes différentes. Ces lignes sont considérées comme des pairs et la relation est réciproque.

Plusieurs-à-un et un-à-plusieurs

La relation plusieurs-à-un (N :1) n’est pas fondamentalement différente de la relation un-à-plusieurs. Elle représente la même relation vue depuis la table opposée. Par exemple, si la table A a une relation un-à-plusieurs avec la table B, vous verrez :

  • une relation un-à-plusieurs répertoriée sous la table A dans Power Apps Maker Portal ;
  • une relation plusieurs-à-un répertoriée sous la table B.

C’est une question de perspective d’interface, et non un type de relation distinct.

Colonnes de recherche

Un moyen courant de créer une relation de table consiste à ajouter une colonne avec le type de données Recherche. Une relation plusieurs-à-un est alors créée automatiquement.

Que la relation soit définie comme un-à-plusieurs, plusieurs-à-un ou au moyen d’une colonne de recherche, la structure sous-jacente est la même.

Créer des relations de table manuellement

Lorsque vous créez une table, comme indiqué précédemment dans ce module, Dataverse fournit plusieurs moyens de configurer les relations de table. Sur l’écran Tables, le volet Schéma comporte un lien Relations.

Un clic sur ce lien entraîne l’ouverture d’une vue affichant toutes les relations de la table. Certains sont définis par le système ; d’autres sont créés par l’utilisateur. Vous pouvez vérifier les tables liées et les types de relations.

En haut de cette vue, vous pouvez cliquer sur Nouvelle relation dans la barre de commandes pour définir manuellement une nouvelle relation.

Lors de la création d’une relation, vous choisissez le type. Dans l’exemple ci-dessous, une relation un-à-plusieurs est créée avec une table nommée Veterinarian. Bien qu’un animal de compagnie puisse être traité par tout vétérinaire, cette relation définit un médecin régulier pour chaque animal. La création de cette relation entraîne également l’ajout d’une colonne de type Recherche dans la table associée.

Une fois la relation créée, une colonne de recherche correspondante s’affiche dans la table associée.

Relations plusieurs-à-plusieurs

Les relations plusieurs-à-plusieurs permettent aux lignes de données d’agir comme des pairs, sans hiérarchie parent-enfant.

Remarque

Les relations plusieurs-à-plusieurs ne sont pas directement prises en charge par les bases de données relationnelles. Dataverse gère ces relations à l’aide d’une table d’intersection masquée. Cette table d’intersection n’est pas modifiable par l’utilisateur et ne prend pas en charge les formulaires ou colonnes personnalisé(e)s.

Pour créer manuellement une relation plusieurs-à-plusieurs, vous choisissez les deux tables associées. Par exemple, si vous disposez d’une table Pet Groomers et d’une table Pets, chaque animal de compagnie peut avoir plusieurs toiletteurs et chaque toiletteur peut avoir plusieurs animaux de compagnie.

Bien que cette relation soit définie dans Dataverse, aucune table d’intersection n’est visible. Cependant, vous pouvez afficher les enregistrements associés dans un formulaire à l’aide d’une sous-grille. Grâce au filtrage, vous pouvez afficher les éléments associés dynamiquement, bien que cela dépasse le cadre de cette unité.

Pour en savoir plus, consultez Présentation de la création de relations de table plusieurs-à-plusieurs.