Associer une ou plusieurs tables : présentation

Effectué

Pour créer une solution efficace et évolutive pour la plupart des solutions que vous créez, vous devez répartir les données dans différents conteneurs (tables). Tenter de tout stocker dans un seul conteneur serait probablement inefficace et difficile à utiliser et à comprendre.

L’exemple suivant illustre ce concept.

Imaginez que vous devez créer un système pour gérer les commandes client. Vous avez besoin d’une liste principale d’articles que vous vendez avec le stock disponible, le coût de l’article et le prix de vente. Vous avez également besoin d’une liste principale de clients avec leurs adresses et cotes de crédit. Enfin, vous devez gérer les factures des ventes que vous effectuez, donc vous avez besoin d’un moyen de stocker les données de facturation. La facture doit inclure des informations de facturation (telles que la date, le numéro de facture et le vendeur), les informations client, y compris l’adresse et la cote de crédit, et un élément de ligne pour chaque article de la facture. Les éléments de ligne doivent inclure une référence à l’article que vous avez vendu, et être en mesure de fournir le coût et le prix appropriés pour chaque article et de diminuer la quantité disponible en fonction de la quantité que vous avez vendue dans cet élément de ligne.

Tenter de créer une seule table pour prendre en charge la fonctionnalité décrite précédemment serait mal avisé et inefficace. La bonne façon d’aborder ce scénario métier consiste à créer les quatre tables suivantes :

  • Clients
  • Produits
  • Factures
  • Éléments de ligne

Créer une table pour chacun de ces éléments et les associer les unes aux autres vous permettra de créer une solution efficace et évolutive tout en maintenant des performances élevées. Répartir les données dans plusieurs tables signifie également que vous n’aurez pas à stocker de données répétitives ou à prendre en charge des lignes volumineuses avec de grandes quantités de données vides. Cette opération est appelée la normalisation des données. En outre, le reporting sera plus facile si vous répartissez les données dans des tables distinctes.

Les tables associées les unes aux autres ont une connexion relationnelle. La technologie sous-jacente à Microsoft Dataverse est une base de données relationnelle gérée dans le cloud par Microsoft. Les relations entre les tables existent sous de nombreuses formes, mais les deux plus courantes sont les relations un-à-plusieurs et plusieurs-à-plusieurs, toutes deux prises en charge par Dataverse.

Les relations un-à-plusieurs sont également appelées des relations parent-enfant. Dans l’exemple de facture précédent, la table de facturation serait le parent et les éléments de ligne seraient une table enfant. Une facture peut avoir zéro, un ou plusieurs éléments de ligne (lignes enfants), mais l’élément de ligne sera toujours associé à une seule facture (ligne parente). En général, les lignes enfants n’existent pas sans une ligne parente.

Une colonne qui n’autorise que des valeurs uniques permet d’identifier la ligne parente. Cette colonne unique est appelée une clé. La même valeur (la clé parente) est stockée dans les lignes enfants associées. Cette colonne est appelée une clé étrangère lorsque la ligne enfant permet de stocker la valeur de clé parente. Le filtrage permet de manière ingénieuse d’afficher les lignes enfants avec une valeur dans la clé étrangère qui correspond à la valeur de clé de la ligne parente. Cela permet aux applications d’afficher les lignes enfants (éléments de ligne dans l’exemple précédent) qui appartiennent à une ligne parente spécifique (facture dans l’exemple précédent). Ce concept est à la base de nombreuses applications logicielles métier.

Conseil

La répartition des données dans différentes tables permet de concevoir une solution efficace et évolutive, mais il peut être difficile de répartir les données dans des tables. Dataverse contient de nombreuses tables dont la plupart des organisations ont besoin. L’utilisation de tables standard et leur extension garantissent que vous créez des solutions grâce à un moyen éprouvé et évolutif de stockage des données utilisées par vos solutions.