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

ORM PHP Discussion :

[Doctrine] Deux clés étrangères qui pointent sur la même clé primaire


Sujet :

ORM PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 46
    Points : 34
    Points
    34
    Par défaut [Doctrine] Deux clés étrangères qui pointent sur la même clé primaire
    Salut tout le monde,

    Est-ce que c’est possible de définir deux clé étrangères d’une table qui pointe sur la même clé primaire d’une deuxième table. Si oui comment peut-on présenter ça dans le schéma et comment peut-on définir les relations sans aucune confusion.

    J'ai déjà essayé à définir ça sur mon schéma, mais apparemment ça marche pas comme il faut au niveau de ma page indexSuccess, et voici mon schéma :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    AppPort:
      connection: doctrine
      tableName: app_port
      columns:
        code:
          type: integer(4)
      relations:
        AppInstance:
          local: id
          foreign: port_id
          type: many
     
    AppInstance:
      tableName: app_instance
      columns:
        name:
          type: string(20)
          notnull: false
        port_id:
          type: integer(4)
        port_2_id:
          type: integer(4)
      relations:
        AppPort:
          local: port_id
          foreign: id
          type: one
        AppPort:
          local: port_2_id
          foreign: id
          type: one
    Merci par avance

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234
    Par défaut
    Salut,

    Pourquoi veux tu faire ça ? Quel est le projet que tu as en tête ? A quoi bon avoir trois colonnes dont deux sont identiques et pointent sur la même clef primaire ?

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 675
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 675
    Points : 188 681
    Points
    188 681
    Par défaut
    Il me semble qu'il y a un petit problème au niveau de question : ne veux-tu pas plutôt avoir deux colonnes qui renvoient chacune vers un enregistrement d'une seconde table, non deux références à un seul et unique enregistrement ?

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je poursuis sur la lancée de dourouc05

    Le schéma corrigé suivant son idée (et la mienne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    AppPort:
      connection: doctrine
      tableName: app_port
      columns:
        code:
          type: integer(4)
     
    AppInstance:
      tableName: app_instance
      columns:
        name:
          type: string(20)
          notnull: false
        port_1_id:
          type: integer(4)
        port_2_id:
          type: integer(4)
      relations:
        AppPort1:
          class: AppPort
          local: port_1_id
          foreign: id
          foreignAlias: Instances1
        AppPort2:
          class: AppPort
          local: port_2_id
          foreign: id
          foreignAlias: Instances2
    Ceci est physiquement fonctionnel.

    Mais que diantre veux tu faire avec une tel construction ? ! As-tu un MCD ? Une idée de l'objectif ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Salut,

    C'est exactement ce que j'étais entrain de chercher, Merci mimi, j'avoue que j'ai un petit peu mal exprimé ma question, en fait, merci dourouc05, tu as a bien expliqué les choses.

    En fait, je travail sur un MCD qui existé déjà et on m'a dit d'y appliquer des modif sans casser l'existant, donc au lieu d'ajouter une 3 ème table "TypePort", que je peux lié à ma table "AppInstance", sachant qu'elle contienne les même infos que "AppPort", j'ai pensé à définir 2 colonne qui référence le même le même enregistrement d'une table. J'espère que j'ai été plus clair cette fois

    Merci à vous tous.

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Citation Envoyé par momo10 Voir le message
    J'espère que j'ai été plus clair cette fois

    Heu... non. Enfin, pas pour moi.

    Mais si cela marche, c'est le principale. Fait gaffe que la solution que tu mettes en œuvre permette des évolutions plausible future.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/10/2012, 10h01
  2. Réponses: 10
    Dernier message: 03/08/2010, 16h38
  3. Réponses: 2
    Dernier message: 06/04/2010, 15h17
  4. 2 noms de domaine qui pointent sur le même site
    Par kurgan71 dans le forum ASP
    Réponses: 4
    Dernier message: 16/04/2007, 09h56
  5. VBA,Graphiques :Series qui pointent sur des Range Discontinu
    Par CCHEVALIER dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/09/2005, 14h05

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