PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 15/01/2010 11:45:05

cafu3
Membre

Prise en main de PostgreSQL

Bonjour à tous !

Merci à l'ensemble des personnes qui font vivre ce site.

Je suis un "petit" webmaster (voir mon site dans ma signature) qui a décidé de laisser tomber MySQL pour PostgreSQL.
J'ai donc migré ma base de données dernièrement. Le plus gros du travail était la correction de mes requêtes SQL. Sinon tout c'est bien passé et je suis bien satisfait de PostgreSQL.

Toutefois, je suis "déçu" par l'héritage qui est souvent cité comme un avantage dans PostgreSQL. Pour l'instant un point me bloque totalement :
cf. http://docs.postgresql.fr/8.4/ddl-inherit.html
"si une autre table indique REFERENCES villes(nom), cela l'autorise à contenir les noms des villes mais pas les noms des capitales. Il n'existe pas de contournement efficace de ce cas."

Voilà, c'était juste pour faire un petit retour sur ma petite expérience de migration et d'utilisation de PostgreSQL.

Hors ligne

#2 15/01/2010 12:09:25

gleu
Administrateur

Re : Prise en main de PostgreSQL

Merci pour le retour d'expérience. J'aimerais savoir en quoi le point que vous avez cité vous bloque ?


Guillaume.

Hors ligne

#3 15/01/2010 12:43:52

cafu3
Membre

Re : Prise en main de PostgreSQL

En fait le terme "bloque" est peut être un peu fort...
Je souhaitais faire une évolution sur une de mes tables pour optimisation et amélioration de mon MCD mais qui n'est à priori pas possible.

Ma situation Actuelle :
Table A : ColA1  ColA2  ColA3 … ColA11 (->11 colonnes)
clé primaire sur ColA1
Table B : ColB1  ColB2
clé étrangère sur ColB2 référençant ColA1


Ma situation désirée :
Table A : ColA1  ColA2  ColA3  ColA4  ColA5 (->5 colonnes)
clé primaire sur ColA1
Table C : qui hérite de la table A: ColC1  ColC2  ColC3  ColC11 (->5 + 6 colonnes)
clé primaire sur ColC1
Table B : ColB1  ColB2
clé étrangère sur ColB2 référençant ColA1

Dernière modification par cafu3 (15/01/2010 12:44:36)

Hors ligne

#4 15/01/2010 17:09:53

gleu
Administrateur

Re : Prise en main de PostgreSQL

En effet, ça ne peut pas fonctionner. ColA1 doit être une clé primaire sur la table C aussi.


Guillaume.

Hors ligne

#5 15/01/2010 20:07:02

cafu3
Membre

Re : Prise en main de PostgreSQL

Dans mon mail précédent, les colonnes ColC1, ColC2 ... ColC5 sont héritées de la Table A donc sont respectivement égales à ColA1, ColA2 ... ColA5.
La clé primaire est sur ColC1 donc sur ColA1.

Ce qui ne marche pas c'est la clé étrangère sur ColB2 référençant ColA1 car celle ci recherche les valeurs dans ColA1 (clé primaire de la table mère) mais pas dans ColC1 (clé primaire de la table fille)

Hors ligne

#6 16/01/2010 00:35:05

gleu
Administrateur

Re : Prise en main de PostgreSQL

Oh OK. En effet, pas de solution actuellement à ce problème.


Guillaume.

Hors ligne

Pied de page des forums