L’héritage

PostgreSQL propose un système d’héritage aux tables, ce qui permet à une table fille d’hériter des colonnes de la table mère, et d’avoir ses propres colonnes en plus. Lorsqu’un tuple est inséré dans la table fille, les données sont aussi visibles depuis la table mère. Seules les colonnes propres à la table fille sont stockées physiquement dans cette table.

Par exemple, la table prestations de la base de données clients permet de stocker des informations génériques sur des prestations. En créant une table formations, héritant de la table prestations, il est possible de spécialiser cette table, en ajoutant des champs, comme dans l’exemple suivant :


CREATE TABLE formations  (  
   nb_stagiaires int,  
   plandecours varchar(25),  
   type varchar(5) check ( type in ('intra','inter') ))  
INHERITS (prestations) ; 
 

La description de la table par la commande \d montre que les colonnes de la table mère font effectivement partie de cette nouvelle table :


clients=# \d formations  
                   Table "public.formations"  
     Colonne      |          Type            | Modificateurs  ...
Pour consulter la suite, découvrez le livre suivant :
couv_EP4POST.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Le système de règles
Suivant
Gestion de données externes