Lookup vs champs text pour foreign key

  • Lookup vs champs text pour foreign key

    Posté par Valentin sur 19 septembre 2024 à 1h01

    Bonsoir,

    Dans le cadre une canvas app, je me demandais si au niveau de la base dataverse , à quel moment il est plus judicieux d’utiliser un champs de type lookup et à quel moment peut on plutôt utiliser un champs de type texte contenant l’id de l’enregistrement associé provenant d’une autre table ?

    Ne gagnerais pas t’on plus en terme de performance avec des champs texte étant donné qu’on est sur un type simple ?

    Bonne soirée à vous

    R3dKap a répondu Il y a 3 semaines, 2 jours 2 Membres · 1 Réponse
  • 1 Réponse
  • R3dKap

    Membre
    24 septembre 2024 à 18h13

    Salut @Valentin,

    Mon avis est que les champs de type Lookup sont là justement pour créer de vraies relations entre les tables dans une vraie base de données (comme c’est le cas dans une base SQL Server qui est d’ailleurs utilisé pour le Dataverse). Cela permet de gérer des notions de dépendances et donc de protection des données lorsque l’on veut supprimer un enregistrement qui est utilisé par ailleurs par exemple.

    Je ne recommanderais pas de stocker les ID des enregistrements liés d’une autre table dans un champ texte : même si techniquement c’est possible ça me semble bancal et contre-productif.

    Et pour ce qui est des perfs, je ne pense pas qu’il y ait une différence au niveau base de données (c’est plutôt dans la manière d’exploiter cette relation que cela peut engendrer des différences de perfs) : d’ailleurs tu remarqueras que lorsque tu récupéres un enregistrement d’une Table A avec un champ lookup vers une table B, dans ton champ lookup n’a que le champ contenant l’identifiant de l’enregistrement lié (+ le champ principal) qui sont alimentés (tous les autres sont vides) -> c’est une optimisation faite par Power Apps pour que les perfs restent acceptables.

Connectez-vous pour répondre.