Certains base de données de gestion des applications traitent des informations hiérarchiques , tels que les États constituées de comtés qui contiennent à leur tour des villes. Vous pourriez être tenté d'organiser cette information dans des tableaux distincts dans votre SGBD - un pour chaque niveau de la hiérarchie - mais une solution plus élégante utilise une table d'auto-référencement , ce qui est plus facile à gérer et peut accueillir un plus grand nombre de données. Auto-référencement Table Pour créer un tableau d'auto-référencement , vous commencerez avec deux champs, un numéro d'identification et un numéro d'identification de parent. Pour ces champs, vous pouvez en ajouter d'autres appropriées pour l'application , telles que le nom , la description , le lieu ou la population. Pour plus de commodité , vous pouvez définir le numéro d'identification d' un type de champ de numérotation automatique pour la base de données automatiquement les numéros nouveaux enregistrements par ordre croissant . Les références d'identification des mères le numéro d'identification de l'enregistrement parent dans la hiérarchie , si le dossier n'a pas de parent , vous pouvez définir ce champ à zéro. Par exemple, le record de Californie possède un ID d' un an et ID parent de zéro. Le record pour le comté de San Francisco possède un ID de deux et un ID de parent d'un. Chaque enregistrement de l'enfant dans le tableau de références des enregistrements parents dans le même tableau ; . La table est auto-référencement Consolidation Un effet de tables auto-référencement est une consolidation de plusieurs tables en une seule table. Avoir moins de tables simplifie la base de données et facilite son entretien. Systèmes de bases de données modernes, pouvant accueillir facilement des millions d'enregistrements par table , donc garder tous les éléments de données d'une hiérarchie dans un seul tableau n'est pas un problème . En définissant le champ d'identification à une clé primaire et l'ID du parent à un index, vous pouvez facilement localiser tous les dossiers ainsi n'importe quelle succursale de la hiérarchie. Flexibilité une base de données qui a un tableau pour chaque niveau dans une hiérarchie fonctionne bien jusqu'à ce qu'un nouveau niveau apparaît, que vous devez ensuite ajouter une nouvelle table pour s'adapter au changement et de modifier tous les programmes d'application qui utilisent la base de données . En revanche, une table d'auto-référencement peut accueillir n'importe quel nombre de niveaux hiérarchiques . Le champ ID parent pointe toujours vers le niveau supérieur de la hiérarchie , de sorte que les dossiers forment une chaîne cohérente. Le nombre de niveaux dans la hiérarchie peut être la même pour tous les enregistrements parents ou elle peut varier ; la table d'auto-référencement gère les deux cas suppression en cascade Quand . une table d'auto-référencement contient de nombreux enregistrements de données , vous pouvez vous demander ce qu'il faut faire lorsque vous supprimez un enregistrement parent . Sauf si vous supprimez également tous les enregistrements enfants , vous risquez de créer des « orphelins », ou des dossiers avec des ID de parents invalides . Heureusement, il existe un mécanisme pour gérer cette situation automatiquement . Lorsque vous créez le champ ID parent , vous pouvez spécifier qu'il a un champ de clé étrangère , et utiliser le champ ID comme clé principale de la table. Une fois que vous avez fait cela, vous pouvez ajouter la contrainte , "ON DELETE CASCADE " sur le terrain. Avec la contrainte et les paramètres clés étrangères en place, la base de données permet de supprimer tous les enregistrements enfants correspondants chaque fois que vous supprimez un enregistrement parent .
|