|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
J’ai une superclasse « personne » et deux sous classes fils voici la structure :
Create table personne (code_pers serail primary key, nom_pers varchar(30), prenom_pers varchar(30), adr_pers text); Create table enseignant (Code_Ens number primary key, grade_Ens varchar(30)) INHERITS (personne); Create table administrateur (Code_Adm primary key) INHERITS (personne); J’ai ce pbm : Si un administrateur est un enseignant donc je dois créer qu’une seule occurrence de personne le pbm c’est je n’arrive pas à le faire. Quand je crée l’administrateur, le SGBD Postgres crée une autre personne. Comment faire pour que l’administrateur et l’enseignant pointent sur la même personne ! merci pour vos réponses. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
si tu pouvais créer un administrateur qui soit également un enseignant, cela reviendrait à créer deux fois la même "personne", ce qui serait en violation de la contrainte de clé primaire sur code_pers. Tu vas devoir revoir ton schéma de base...
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
Bonjour...
je te remercie pour ta réponse. Moi c'est ce que je veux, une même personne pour enseignant et administrateur. Sous postgres, quand je fais un insert que se soit dans enseignant ou administrateur, il crée une autre personne. Comment je dois faire? |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Une possibilité serait de considérer un administrateur comme une "spécialisation" d'un enseignant, et donc de créer cette relation d'héritage :
Code :
personne --> enseignant --> administrateur
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
ok merci pour la réponse. oui ta raison il faut fusionner .... encore une fois un grand merci.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com