Implémentation de l'intégrité référentielle dans les sous-types
Problème
La solution proposée pour implémenter l'intégrité référentielle dans une structure de sous-type implique la création de tables en double et de contraintes supplémentaires. Cette approche semble inutilement complexe et inefficace.
Introduction
La mise en œuvre de l'intégrité référentielle dans les bases de données relationnelles nécessite une bonne compréhension du modèle relationnel et de ses normes associées. La notation IDEF1X fournit un cadre complet pour modéliser les sous-types et leurs relations.
Mise en œuvre de l'intégrité référentielle pour les sous-types
Il existe deux types de structures de sous-types :
Sous-type exclusif : Dans ce cas, chaque ligne de type de base doit avoir exactement une ligne de sous-type. Le type de base a généralement une colonne discriminante qui identifie le sous-type existant.
Sous-type non exclusif : Dans ce cas, une ligne de type de base peut avoir zéro ou plusieurs lignes de sous-type. L'existence d'un sous-type est vérifiée grâce à une vérification d'existence sur la table des sous-types.
Sous-type exclusif avec discriminateur
Colonne du discriminateur
- A CHECK CONSTRAINT garantit que la valeur de la colonne du discriminateur se situe dans la plage autorisée.
- La valeur du type de base un PK unique garantit qu'une seule ligne de type de base existera.
Intégrité référentielle du sous-type
- Une contrainte FK dans le sous-type fait référence au PK du type de base .
- Un UDF est utilisé pour interroger le type de base pour l'existence du PK et du discriminateur correct value.
- Une CONTRAINTE CHECK dans le sous-type appelle l'UDF pour garantir que le sous-type correct existe pour le type de base.
Sous-type non exclusif
- Aucune colonne de discriminateur n'est requise.
- L'existence d'un sous-type est déterminée en vérifiant la table des sous-types à l'aide du type de base. PK.
- Les contraintes PK, FK et range CHECK dans le sous-type sont suffisantes pour l'intégrité référentielle.
Critiques de la solution proposée
- Duplication des tableaux et la création de contraintes supplémentaires entraîne une surcharge de données inutile et une complexité supplémentaire.
- La solution proposée ne permet pas de résoudre efficacement appliquer l'intégrité référentielle entre les types de base et les sous-types.
Recommandation
- Utilisez l'approche IDEF1X standard décrite ci-dessus pour implémenter l'intégrité référentielle dans les sous-types.
- Envisagez d'utiliser des procédures ou transactions pour gérer les insertions et les mises à jour dans les tables de type de base et de sous-type afin de préserver le référentiel intégrité.
- Appliquer les règles d'autorisation et utiliser des points de terminaison d'API sécurisés pour empêcher les modifications non autorisées de la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn