IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

question sur les requetes table héritée


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut question sur les requetes table héritée
    bonjour,

    dans le cas ou l'on crée un tuple dans la table parente est il possible de faire un update sur la table fille en effectuant la recherche sur la table parente. Exemple
    une table "personnes" avec id, nom, prenom.
    une table "usagers" qui herite de personnes avec le champ estUnUsager.

    je remplit la table personnes. Plus tard l'une des personnes devient un usager. peut on faire un update sur la table usagers en réalisant une close where sur la table personnes façon à récuperer les valeurs de personnes?

  2. #2
    Invité
    Invité(e)
    Par défaut
    je crois que tu as un petit probleme de conception et de normalisation de ta base.
    en effet, d'apres ce que j'ai compris, tu as des infos en double, ce qui induit de la redondance.

    il faudrait que tu nous montre les schemas de tes tables Personne et Usager, pour resoudre ce probleme car normalement le probleme que tu as ne se pose meme pas.

  3. #3
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    peut on faire un update sur la table usagers en réalisant une close where sur la table personnes façon à récuperer les valeurs de personnes?
    Non, c'est impossible. Comme l'INSERT s'est fait sur la table "personnes", l'enregistrement est inconnu pour "usagers" et l'UPDATE échouera.

    Maintenant, je suis d'accord avec torvalds17 pour dire qu'il y a un problème de conception : quel est l'intérêt d'utiliser l'héritage ? Pourquoi ne pas mettre directement le champ estUnUsager dans Personnes ?

    L'héritage aurait un intérêt si les "usagers" étaient des "personnes" avec des champs en plus.
    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

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GrandFather
    Pourquoi ne pas mettre directement le champ estUnUsager dans Personnes ?
    peut etre tout simplement parce que sa table Usager a beaucoup de champs, et qu'il ne veut pas tous les mettres en NULL dans sa table Personne.

    dans ce cas je suggere de faire effectivement une table Usager, mais ne reprenant pas les proprietes de Personne, reprenant seulement l'identifiant de Personne pour faire une dependance de reference. c'est ce qui me parait le plus simple...

    et dans ce cas son probleme trouverait solution en inserant une ligne dans Usager quand une personne devient usager. dans cette ligne inseree figurera l'identifiant de la Personne pour satisfaire la dependance de reference...

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 112
    Par défaut
    merci de toutes vos réponses.

  6. #6
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    dans ce cas je suggere de faire effectivement une table Usager, mais ne reprenant pas les proprietes de Personne, reprenant seulement l'identifiant de Personne pour faire une dependance de reference. c'est ce qui me parait le plus simple...
    Plus simple, pas forcément. Surtout avec la limitation inhérente à l'héritage sous PostgreSQL, le fait que les contraintes de clés étrangères référençant une table ne s'appliquent pas aux tables enfants de cette table. Ainsi, les autres tables pourront donc référencer des "personnes", mais pas des "users". Une limitation plutôt sévère, qui impose de bien réfléchir avant d'opter pour l'héritage.

    [EDIT] J'ai un peu lu de travers... La solution de torvalds n'a rien à voir avec l'héritage.
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2002] Question sur les requetes SQL
    Par Jean-Luc80 dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/09/2009, 13h02
  2. [E-07] question sur les pivots tables
    Par phoenix75 dans le forum Excel
    Réponses: 3
    Dernier message: 08/10/2008, 14h01
  3. [access] question sur les tables liées
    Par maxdwarf dans le forum Access
    Réponses: 4
    Dernier message: 29/06/2006, 09h30
  4. Question sur les tables inserted et deleted
    Par critok dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/06/2006, 22h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo