Il semble que Posgresql fasse plutôt ces tables :
a (a_id, a_Colonnes_communes_a_tous_les_ax)
a1 (Colonnes_de_a, a1_Colonnes_spécifiques_a_a1)
a2 (Colonnes_de_a, a2_Colonnes_spécifiques_a_a2)
Il y aurait donc redondance de données
Non. C'est une idée fausse qui est dûe à mon avis à une mauvaise interprétation du count(*) de tables en hiérarchie. D'ailleurs la redondance n'est mentionnée nulle part dans la doc et un simple test montre qu'elle est imaginaire.
Il suffit de partir de 2 tables vides dont l'une hérite de l'autre, d'insérer des données dans la table parente et de mesurer avec pg_relation_size() la taille de la table fille pour constater qu'elle reste à zéro, ou inversement d'insérer dans la table enfant et de constater que la table parent reste à zéro aussi.
Il est aussi possible de faire
select count(*) from ONLY table
pour avoir le vrai nombre de lignes d'une table indépendamment de la hiérarchie et voir également qu'il n'y a aucun signe de redondance.
En conclusion, ce n'est que quand on SELECT des enregistrements dans les tables qu'intervient la hiérarchie, ce n'est pas au moment du stockage.
Partager