Les Types de Relations entres Tables

Création de relations entre les tables

À présent que vous avez réparti vos informations dans des tables, vous recherchez un moyen réunir les informations de manière significative. Par exemple, sous la forme suivante inclut des informations à partir de plusieurs tables.

Le formulaire Commandes

1. Les informations de ce formulaire proviennent de la table Clients…

2… table employés .la…

3… .la la table commandes…

4… table products .la…

5. … sont correctes la table Détails commande.

L’accès est un système de gestion de base de données relationnelle. Dans une base de données relationnel, vous divisez vos informations en tables distinctes par sujet. Vous utilisez puis relations de table pour rassembler les informations selon vos besoins.

Création d’une relation un-à-plusieurs

Prenons l’exemple : les tables fournisseurs et produits du produit des commandes de base de données. Un fournisseur peut fournir un nombre quelconque de produits. Il suit pour tout fournisseur représenté dans la table fournisseurs, il peut y avoir plusieurs produits représentés dans la table produits. Par conséquent, la relation entre la table fournisseurs et la table produits est une relation un-à-plusieurs.

Relation un-à-plusieurs

Pour représenter une relation un-à-plusieurs dans votre conception de base de données, appliquer à la clé primaire du côté « un » de la relation et ajoutez-la comme une colonne supplémentaire ou des colonnes à la table du côté « plusieurs » de la relation. Dans ce cas, par exemple, vous ajoutez la colonne Réf fournisseur de la table fournisseurs à la table Products. Access peut utiliser ensuite le numéro d’identification de la table produits pour trouver le fournisseur pour chaque produit.

La colonne Réf fournisseur dans la table Products est appelée clé étrangère. Une clé étrangère est la clé primaire d’une autre table. La colonne Réf fournisseur dans la table Products est une clé étrangère, car il est également la clé primaire dans la table fournisseurs.

Image montrant des éléments d'information au cours de processus de conception

Vous fournir base pour joindre des tables liées par établir des paires de clés primaires et clés étrangères. Si vous ne savez pas quelles tables doivent partager une colonne commune, identifiant une relation un-à-plusieurs garantit que les deux tables concernées, en effet, nécessitent une colonne partagée.

Création d’une relation plusieurs-à-plusieurs

Considérez la relation entre la table produits et la table Orders.

Une seule commande peut inclure plusieurs produits. En revanche, un seul produit peut apparaître dans plusieurs commandes. Par conséquent, vous pouvez avoir plusieurs enregistrements dans la table produits pour chaque enregistrement dans la table Orders. Et pour chaque enregistrement dans la table produits, il peut y avoir plusieurs enregistrements dans la table Orders. Ce type de relation est appelé relation plusieurs-à-plusieurs comme pour n’importe quel produit, il peut y avoir plusieurs commandes ; et pour n’importe quel ordre, il peut y avoir plusieurs produits. Notez que pour détecter les relations plusieurs-à-plusieurs entre les tables, il est important de tenir compte des deux côtés de la relation.

Les sujets des deux tables — commandes et produits — ont une relation plusieurs-à-plusieurs. Ceci pose un problème. Pour mieux comprendre le problème, imaginons que se passe-t-il si vous avez essayé de créer la relation entre les deux tables en ajoutant le champ Réf produit à la table Orders. Pour avoir plusieurs produits par commande, vous devez plusieurs enregistrements dans la table Orders par ordre. Il vous faudra répéter informations sur la commande pour chaque ligne est liée à une commande unique, ce qui entraîne une conception inefficace peut entraîner des données inexactes. Vous rencontrez le même problème lorsque vous placez le champ N° commande dans la table produits — vous aurez plusieurs enregistrements dans la table produits pour chaque produit. Comment pour résoudre ce problème ?

La réponse consiste à créer une troisième table, souvent appelée une table de jonction, qui décompose la relation plusieurs-à-plusieurs en deux relations un-à-plusieurs. Vous insérez la clé primaire de chacune des deux tables dans la troisième table. Par conséquent, la troisième table enregistre chaque occurrence ou instance de la relation.

Relation plusieurs-à-plusieurs

Chaque enregistrement dans la table Détails commande représente un article sur une commande. Clé primaire de la table Détails commande est constituée de deux champs — les clés étrangères des commandes et les tables de produits. Le champ N° commande seul ne fonctionne pas comme clé primaire pour cette table, car une commande peut avoir plusieurs articles. Le code de commande est répété pour chaque ligne d’une commande, afin que le champ ne contient des valeurs uniques. En utilisant le champ Réf produit seul ne pas non plus car un produit peut apparaître dans plusieurs commandes différentes. Mais ensemble, les deux champs produisent toujours une valeur unique pour chaque enregistrement.

Dans la base de données de ventes de produits, la table commandes et la table Products ne sont pas liés entre eux directement. En revanche, elles sont liées indirectement via la table Détails commande. La relation plusieurs-à-plusieurs entre les commandes et produits est représentée dans la base de données en utilisant deux relations un-à-plusieurs :

  • La table commandes et la table Détails commande ont une relation un-à-plusieurs. Chaque commande comporte plusieurs éléments de ligne, mais chaque ligne de facturation est connecté à une commande.
  • La table produits et la table Détails commande ont une relation un-à-plusieurs. Chaque produit peut avoir plusieurs lignes de facturation associés, mais chaque ligne de facturation fait référence à qu’un seul produit.

À partir de la table Détails commande, vous pouvez déterminer tous les produits dans un ordre en particulier. Vous pouvez également déterminer toutes les commandes d’un produit spécifique.

Après l’incorporation de la table Détails commande, la liste des tables et des champs peut ressembler à ceci :

Image montrant des éléments d'information au cours de processus de conception

Création d’une relation un-à-un

Un autre type de relation est la relation. Par exemple, supposons que vous avez besoin d’enregistrer des informations de produit supplémentaires spécial dont vous aurez besoin rarement ou qui s’applique uniquement à quelques produits. Vous n’avez pas besoin les informations souvent, et parce que stocker les informations dans la table Products entraînerait dans un espace vide pour chaque produit auquel il ne s’applique pas, placez-le dans une table distincte. À la table produits, vous utilisez l’ID de produit comme clé primaire. La relation entre cette table supplémentaire et la table Product est une relation. Pour chaque enregistrement dans la table Product, il existe un seul enregistrement dans la table supplémentaire. Lorsque vous identifiez une telle relation, les deux tables doivent partager un champ commun.

Lorsque vous détectez la nécessité d’une relation dans votre base de données, tenez compte si vous pouvez intégrer les informations des deux tables dans une table. Si vous ne voulez pas le faire pour une raison quelconque, par exemple, car il entraînerait un grand nombre d’espace vide, la liste suivante présente comment vous souhaitez représenter la relation dans votre conception :

  • Si les deux tables ont le même objet, vous pouvez probablement configurer la relation à l’aide de la même clé primaire dans les deux tables.
  • Si les deux tables possèdent des sujets différents avec des clés primaires différentes, choisissez une des tables (soit un) et insérez sa clé primaire dans l’autre table comme clé étrangère.

Déterminer les relations entre tables vous permet de garantir que vous avez droit tables et des colonnes. Il existe une relation un à un ou un-à-plusieurs, les tables concernées doivent partager une ou plusieurs colonnes courantes. S’il existe une relation plusieurs-à-plusieurs, une troisième table est nécessaire pour représenter la relation.