
Reply To: Fonctionnement relation entre les tables
Bonjour Oliviersg95,
Je suis pas encore un expert sur Dataverse mais voici les bases sur les relations…
Si tu veux créer une relation 1-1 entre 2 tables, il te suffit de créer une nouvelle colonne de type Rechercher et où tu choisis la table liée. Et c’est tout… Le système stockera dans ta colonne la PK de ta table liée. Pas besoin de choisir une colonne dans la table liée (comme dans SharePoint). Et ensuite tu peux accéder aux données de ta table cible simplement avec un
.<colonne>
après le nom de ta colonne de recherche dans ta table source.Ensuite, si tu veux créer des relations 1-N, N-1 ou N-N, là tu passes par l’onglet Relations de l’une de tes 2 tables et tu crées une nouvelle relation Une-à-plusieurs, Plusieurs-à-une ou Plusieurs-à-plusieurs.
Dans le cas de la relation 1-N, le système ajoutera une colonne Rechercher dans la table cible. Dans le cas de la relation N-1, le système ajoutera une colonne de recherche dans ta table source.
Et le cas de la relation N-N est particulier : le système crée une table masquée impossible à interroger comme une table classique autrement que par Power Automate (et encore c’est pas trivial). Du coup, pour les relations N-N je préfère créer moi-même ma propre table dans laquelle je mets les PK des chacune des 2 tables concernées.
Par exemple, pour créer une relation N-N entre Client et Parc, je créerai une table Location avec 2 colonnes :
une colonne de recherche Client qui pointe vers la table Client
une colonne de recherche Produit qui pointe vers la table Parc
Si tu optes pour la relation N-N “native”, il te faudra utiliser les fonctions Relate() et Unrelate() pour faire et défaire les liens entre tes clients et tes produits.
Si tu optes pour ta propre table Location, il te faudra gérer son contenu à l’aide des fonctions habituelles de gestion de source de données : Patch(), Remove(), …
Voilà, j’espère que je n’ai pas dis de bêtise. Je laisse DavidZed ou autre spécialiste Dataverse confirmer ou infirmer…
CommentID=DGPcfoXYdZMPB5l, PostID=yJBamrxKphKJa6Y