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

SQL Oracle Discussion :

problème de conception


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Points : 167
    Points
    167
    Par défaut problème de conception
    Bonjour.

    Ce n’est pas un problème de requête mais plutôt un problème de conception.

    Voici l’ensemble de mes tables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Patient(PAT_ExternalId,NOM, PRENOM,PATRONYME,DATENAIS)
    Visite(Visite_Id,PAT_ExternalId,DB1_VisiteID,DB1_DATEVISITE,DB2_VisiteID,DB2_DATEVISITE)
    QRCorresp(NIQ,NIR,NIQSUP,NIRSUP,DB1_VisiteID,DB2_VisiteID)
    Questions(NIQ,LIBELLE,LIBABR,ORIGINE_DB)
    Reponses(NIR,REPONSE, UNITE)
    J’arrive à lier les tables (QRCorresp, Questions et Reponse)(QRCorresp.NIQ = QUESTION.NIQ et QRCorresp.NIR = Reponses.NIR)
    J’arrive aussi à lié les deux tables (Patient et Visite) (Patient.ExternalId = Visite.ExternalId)

    Mais je ne sais pas comment je peux lier les tables (Visite et QRCorresp)
    Parce que je veux une structure qui me permet d’extraire les données en fonction de leur base d’origine.

    Exemple (la requête est donnée juste à titre indicatif):
    Pour la base DB1 je dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select Patient.PAT_ExternalId, Patient.NOM, Visite.Visite_Id, Question. LIBELLE, Reponses.REPONSE from Patient,Visite, QRCorresp,Questions, Reponses
    Where (Patient.PAT_ExternalId = Visite.PAT_ExternalId) 
    and (Visite.DB1_VisiteID = QRCorresp. DB1_VisiteID)
    and (QRCorres.NIQ = Questions.NIQ)
    and (QRCorresp.NIR = Reponses.NIR)
    mon problème est qu’au niveau conception je ne sais pas comment lier les tables (Visite et QRCorresp) parce que pour la base DB1 j’ai DB1_VisiteID comme champ commun entre les deux tables et pour la base DB2 j’ai DB2_VisiteID comme champ commun.

    J’ai pensé à mettre le champ Visite. Visite_Id dans la table QRCorresp aussi. Mais comme je procède de cette manière : dans la table visite j’insère les données de la base DB1 donc il y a des Visite.Visite_Id qui sont généré automatiquement, à cette étape les champs Visite.DB2_VisiteID et Visite.DB2_DATEVISITE sont encore vide ; Donc je fais un mise à jour à partir de la base DB2 pour remplir ces champs.
    Après j’inserts dans la même table Visite les données de base DB2 ne figurant pas dans la base DB1.

    Et j’obtiens dans la table Visite des enregistrements de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    7776,ELF21071977NAJ,KK000,15/10/2007 11:25, NULL, NULL
    7777,ELF21071977NAJ,KK111,01/12/2007 10 :30, AA222, 01/12/2007
    7778,ELF21071977NAJ,KK112,01/12/2007 14:00, AA222, 01/12/2007
    7779,ELF21071977NAJ,  NULL   ,NULL , AA444,  14/12/2007
    est ce que vous me proposer de changer la structure la table Visite?
    Si oui comment ?
    Sinon comment je peux en gardant la structure actuelle, lier les tables Visite et QRCorresp ?

    Je vous remercie d’avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 41
    Points : 46
    Points
    46
    Par défaut
    Je ne suis pas sur d'avoir tout bien compris ton problème...

    Une solution serait de réserver une plage de valeur de visite_id à chaque base.
    Soit avec un paramètrage des sequences différentes pour chaque base.
    Soit en concaténant un code en préfixe du visite_id ex : 1xxxxx pour les visite de db1 et 2xxxxxx pour les visite de db2.
    Soit en ajouter un champ BASE_ID. Dans ce cas tu gères une clé concaténée (base_id + visite_id)

Discussions similaires

  1. Méthode Finalize et problème de conception
    Par phryos dans le forum Langage
    Réponses: 4
    Dernier message: 19/04/2006, 11h04
  2. [VB6][UserControl et OCX]Problème de conception
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 19/01/2006, 22h37
  3. Petit problème de conception sur access
    Par coooookinette dans le forum Modélisation
    Réponses: 3
    Dernier message: 18/12/2005, 18h24
  4. Gestion des départements problème de conception
    Par snoopy69 dans le forum Modélisation
    Réponses: 7
    Dernier message: 11/10/2005, 13h08
  5. Problème de conceptions de tables
    Par dtavan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/05/2004, 23h13

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