|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||||||
|
Membre régulier
![]() Inscription : juin 2008 Messages : 214 ![]() |
Slt, je suis en train d'essayer de faire un héritage avec PostgreSQL mais je rencontre un problème.
Je crées un table "mère" Personnes (contenant id_personne + autres champs). Je fais hériter une table nommée adhérents et une autre nommée touristes. je fais ensuite une table familles qui a une clé étrangère id_chef_famille référençant l'id d'un adhérent (et surtout pas d'un touriste). Seulement, l'id d’adhérent est celui de la table Personne. Il ne m'est pas possible de faire : Code :
Code :
J'ajoute donc mon adhérent : Code :
Code :
Code :
Comment résoudre le problème ? J'ai essayé de mettre comme contrainte à Famille : Code :
Code :
Cordialement. |
||||||||||||||
|
|
00
|
|
|
#2 |
![]() ![]() |
L'héritage de tables en Postgresql, c'est pas top !
![]() Je préfère modéliser les héritages moi-même. On peut avoir la description des tables Personnes et Adherents ? Au passage, c'est mieux de nommer les tables (et entités du MCD) au singulier.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : juin 2008 Messages : 214 ![]() |
Pour le singulier, c'est mon prof qui demande le pluriel
Je vous mets le code complet : Code :
Merci d'avance. Cordialement. |
||
|
|
00
|
|
|
#4 | |||
![]() ![]() Inscription : octobre 2008 Messages : 1 504 ![]() |
Citation:
|
|||
|
|
00
|
|
|
#5 |
![]() ![]() |
Voilà ! Je crois que c'est ça qui m'avait fait renoncer aux héritages à la mode Postgresql !
A quoi bon faire un héritage si on ne peut pas s'en servir ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#6 | |||
|
Membre régulier
![]() Inscription : juin 2008 Messages : 214 ![]() |
Citation:
Code :
Sinon c'est exactement comme dit CinePhil. Ça ne sert à rien de faire un héritage si on ne peut pas l'utiliser. Merci d'avance. Cordialement. |
|||
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : octobre 2008 Messages : 1 504 ![]() |
L'héritage concerne en fait la structure de la table. Le principal cas concret où il est utilisé avec postgresql est le partitionnement.
Mais globalement, ça n'offre rien qui ne puisse être fait autrement "à la main". Ceci étant, une relation de hiérarchie entre tables se modélisant couramment avec une simple clef étrangère vers son parent, l'intérêt d'un héritage de données est discutable. En tout cas ça fait partie des directions qui n'intéressent visiblement pas les développeurs. |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : juin 2008 Messages : 214 ![]() |
Le problème après c'est quand j'ai un id de personne, il faut faire plusieurs requêtes pour retrouver si c'est un adhérent ou autre. On peut pas tout faire en une seule requête, je trouve ça assez lourd. Alors qu'avec cette solution ça avait l'air moins lourd.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com