Mappage de l'héritage orienté objet vers un schéma de base de données relationnelle
Les modèles de données canoniques présentent souvent des relations d'héritage, où les attributs sont hérités du parent à l'enfant entités. Traduire cet héritage en un schéma de base de données relationnelle peut être une tâche complexe.
Héritage de table unique (STI)
Cette approche utilise une seule table pour représenter toutes les classes du hiérarchie d'héritage. Chaque ligne contient tous les attributs de sa classe associée. Bien que STI soit simple à mettre en œuvre, il peut entraîner un grand nombre de valeurs nulles pour des attributs qui ne sont pas pertinents pour toutes les classes.
Héritage des tables de classes (CTI)
CTI crée des tables distinctes pour chaque classe dans la hiérarchie d'héritage. Chaque table contient les attributs spécifiques à cette classe et des liens vers la table parent. Cette approche réduit le nombre de valeurs nulles mais nécessite des requêtes plus complexes pour parcourir l'arbre d'héritage.
Héritage des tables concrètes (CTI)
CTI crée également des tables distinctes pour chaque classe, mais les tables partagent un ensemble commun de champs clés. Cela permet des requêtes plus efficaces et de meilleures performances que STI ou CTI.
Le choix de la stratégie de mappage d'héritage à utiliser dépend des exigences spécifiques du schéma de base de données. Les modèles d'architecture d'application d'entreprise de Martin Fowler fournissent une discussion complète de ces approches et offrent des conseils sur la sélection de la plus appropriée.
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!