Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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
Pages : 1