Présentation
Lorsque les données sont modélisées dans Microsoft Dataverse, des tables séparées sont utilisées pour représenter des objets et des concepts distincts. Les organisations peuvent utiliser davantage de tables pour sécuriser des informations spécifiques, éviter la répétition des données, décrire d’autres propriétés ou faciliter la création de rapports. Comme, dans la réalité, les objets sont liés les uns aux autres, Dataverse utilise des relations pour associer des lignes entre les tables. De plus, les relations peuvent fournir des contraintes et des comportements qui s’appliquent lorsque des actions sont effectuées sur les enregistrements.
De manière générale, les tables et les relations de Dataverse peuvent être associées pour organiser vos données. Lorsque vous créerez une expérience utilisateur satisfaisante dans une application canevas à partir de Microsoft Power Apps en utilisant des tables et des relations, vous aurez probablement besoin de masquer les complexités inutiles du modèle de données. Pour effectuer cette tâche, vos formules et votre utilisation des données doivent naviguer efficacement dans les tables à l’aide des relations. Ce module examine comment utiliser les différents types de relations qu’offre Dataverse.
Scénario : espaces de travail partagés Contoso
Ce module utilise un scénario commercial courant pour démontrer le fonctionnement des relations Dataverse avec les applications canevas. Contoso, comme de nombreuses entreprises, dispose de plusieurs emplacements et permet à ses collaborateurs de travailler à domicile. Parfois, ces collaborateurs doivent venir dans les locaux de la société et utiliser un bureau lors de leur visite. Auparavant, Contoso demandait aux collaborateurs de faire le tour des locaux à leur arrivée pour trouver un bureau disponible. La société a depuis constaté que ce type de système d’espaces de travail partagés, parfois appelé partage de bureau, entraînait des problèmes de support informatique et de licences. En conséquence, la société prévoit de créer une solution pour que les collaborateurs puissent afficher les bureaux disponibles et en réserver un à l’avance. L’équipe qui développe la solution a identifié les tables suivantes pour son modèle de données Dataverse.
Nom de la table | Description |
---|---|
Emplacement | Cette table représente les bâtiments individuels et contient des colonnes comme l’adresse et le numéro de téléphone. Chaque emplacement aura un contact principal. |
Bureau | Cette table représente le bureau réel qu’une personne peut réserver. Les bureaux sont situés à un emplacement précis. |
Fonctionnalité de bureau | Chaque bureau a des fonctionnalités différentes. Par exemple, certains bureaux peuvent avoir un haut-parleur et d’autres peuvent être isolés dans une pièce. Une liste standard de fonctionnalités de bureau est prévue, et chaque bureau pourra avoir une ou plusieurs de ces fonctionnalités. |
Utilisateur | Les utilisateurs représentent les personnes qui peuvent réserver le bureau ou être le contact principal d’un emplacement. |
Réservation | Cette table représente la réservation d’une personne pour utiliser un bureau spécifique, à un emplacement et dans un créneau horaire précis. |
Types de relations Dataverse
Lorsque vous créez une relation entre des tables, le type de relation définit les contraintes de cardinalité de part et d’autre de la relation. Dataverse prend en charge les relations un-à-plusieurs et plusieurs-à-plusieurs.
Relations un-à-plusieurs
La relation un-à-plusieurs (également appelée 1 à N ou parent-enfant) comprend une table principale (parent), dans laquelle vous pouvez associer une ligne individuelle avec de nombreuses lignes de table liées (enfants) à l’aide d’une colonne de recherche dans la table (enfant) associée. La ligne principale est appelée le parent et les lignes de table associées sont appelés lignes enfants. Vous ne pouvez associer une ligne enfant qu’à une seule ligne parent.
Une relation un-à-plusieurs est également appelée relation plusieurs-à-un (ou N à 1), dans laquelle vous utilisez la relation en commençant par l’enfant pour pointer vers le parent. Il s’agit de la même définition de relation physique, mais sous un angle différent. Dans une application canevas, si vous utilisez l’enregistrement enfant et que vous souhaitez afficher une propriété du parent, vous utilisez la propriété de navigation de la relation plusieurs-à-un sur la ligne enfant.
Par défaut, une seule table est utilisée comme table principale et la colonne de recherche pointe toujours vers une ligne de cette table. Dataverse prend également en charge les recherches multi-tables (parfois appelées recherches polymorphes), qui permettent à un champ de recherche de pointer vers une ligne dans l’une des multiples tables, ce qui offre la flexibilité nécessaire pour des modèles de données plus complexes. Par exemple, vous pouvez configurer une colonne de recherche multi-table en créant une colonne de type de données Client. Ensuite, vous pouvez définir la valeur de recherche client afin qu’elle pointe vers un contact ou une ligne d’une table de compte. Sur toutes les tables d’activité (par exemple, e-mail, tâche, etc.), la colonne correspondante peut pointer vers n’importe quelle table activée pour le suivi des activités. De plus, vous pouvez utiliser le type de colonne Recherche multi-table pour configurer une colonne de recherche multi-table personnalisée. Lorsque vous utilisez ces colonnes de recherche multi-table dans Power Apps, vous déterminez la table parente et utilisez les données à l’aide des fonctions Microsoft Power Fx IsType et AsType.
Dans l’exemple de modèle de données de ce module, les relations un-à-plusieurs suivantes ont été définies pour prendre en charge le scénario.
Table principale | Table associée | Description |
---|---|---|
Emplacement | Bureau | Chaque bureau a un emplacement. |
Utilisateur | Emplacement | Chaque emplacement a un contact principal. |
Utilisateur | Réservation | Utilisateur auquel le bureau est réservé. |
Bureau | Réservation | Chaque réservation correspond à un bureau spécifique. |
Lorsque vous configurez une relation un-à-plusieurs, vous pouvez également configurer les comportements de la relation. Les comportements déterminent ce qui doit se passer lorsque la ligne de la table principale est supprimée, affectée, partagée, non partagée ou apparentée à nouveau. Le comportement par défaut est la référence, qui est configurée pour supprimer le lien entre les deux tables lorsque la ligne de la table principale est supprimée. Par exemple, la table Emplacement a plusieurs bureaux et utilise la configuration par défaut, donc si votre application canevas supprime une ligne d’emplacement, tous les bureaux associés seront orphelins par défaut. Si le besoin métier exige de supprimer les enregistrements de bureaux associés lorsqu’un emplacement est supprimé, vous pouvez sélectionner la fonction ForAll, qui supprimera d’abord tous les enregistrements de bureaux associés. Une meilleure option consiste à définir le type de comportement parental pour la relation. Ce type de comportement supprime automatiquement les enregistrements associés lorsque l’enregistrement principal est supprimé. Cette approche garantit que vous n’aurez pas d’enregistrements de bureau orphelins.
Lorsque vous créez une application canevas et utilisez des tables associées, il est important de savoir comment sont configurés les comportements de cette relation pour être certain d’implémenter la logique correcte.
Relations plusieurs-à-plusieurs
La relation plusieurs-à-plusieurs (également appelée N à N) comprend une table masquée spéciale, appelée table de relations (ou parfois table d’intersection). Ce tableau indiquera comment les nombreuses lignes d’une table peuvent être associées aux nombreuses lignes d’une autre table. Les relations plusieurs-à-plusieurs peuvent effectuer le suivi de l’association, mais vous ne pouvez pas modifier la table d’intersection pour ajouter des colonnes personnalisées qui décrivent la relation.
Dans l’exemple de ce module, Bureau et Fonctionnalité de bureau auraient une relation plusieurs-à-plusieurs. La liste des fonctionnalités de bureau serait partagée par tous les bureaux, et chaque bureau pourrait avoir une ou plusieurs fonctionnalités associées. Les relations plusieurs-à-plusieurs permettent aux utilisateurs de savoir que le bureau est pourvu de chaises, mais ne vous permettent pas de stocker le nombre de chaises par bureau.
La vidéo suivante montre comment créer des relations entre des tables.
Une fois que vous avez créé toutes les tables et les relations, le modèle de données de l’exemple de scénario doit ressembler au schéma suivant.
La suite de ce module explique comment utiliser ce modèle de données à partir d’une application canevas.