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

Symfony PHP Discussion :

Problème de relation 1-1 avec Doctrine [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut Problème de relation 1-1 avec Doctrine
    Bonsoir,

    J'ai un problème de relation avec trois tables.
    Voici comment elles se présentent :

    Boulangeries (ma liste de boulangerie)
    - id
    - nom
    Pain (Les pains présent dans les boulangeries)
    - id
    - Boulangerie_id
    - TypeDePain_id
    TypeDePain (Pain coupé, pain rond...)
    - id
    - nom
    Mon problème : il considère mon champ "TypePain_id" comme unique.
    Du coup si j'ai 3 TypeDePain je ne peux pas rajouter plus de 3 Pains!


    Voici mon schema.yml
    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
    33
    34
    35
    36
    37
    38
    39
    Boulangerie:
      columns:
        id:
          primary: true
          type: integer(5)
          autoincrement: true
        title:
          type: string(255)
    BoulangeriePain:
      columns:
        id:
          primary: true
          type: integer(5)
          autoincrement: true
        Boulangerie_id:
          type: integer(5)
          notnull: true
        BoulangeriePainType_id:
          unique: false
          type: integer(5)
          notnull: true
      relations:
        Boulangerie:
          local: Boulangerie_id
          foreign: id
        BoulangeriePainType:
          local: BoulangeriePainType_id
          foreign: id
    BoulangeriePainType:
      columns:
        id:
          primary: true
          type: integer(5)
          notnull: true
          autoincrement: true
        title:
          type: string(150)
        description:
          type: string
    Le schema me semble bon pourtant... ?
    Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2010
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 144
    Par défaut
    Ce n'est pas une relation 1-1 qu'il faut utiliser mais une Many-Many, et du coup il n'y a pas besoin d'écrire le schéma de la table BoulangeriePain, symfony s'occupera de la générer automatiquement.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Bonjour gmarsay,

    Merci pour cette réponse rapide. Je vais essayer ca.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Effectivement, une relation n-n.

    Un peu compliquer à mettre en place la première fois...

    Le schéma revu à ma façon et avec la n-n.

    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
     
    Boulangerie:
      columns:
        title: string(255)
      relations:
        Pains
          class: Pain
          foreignAlias: Boulangeries
          refClass: BoulangeriePain
     
    BoulangeriePain:
      columns:
        Boulangerie_id:
          type: integer
          primary: true
        Pain_id:
          type: integer
          primary: true
      relations:
        Boulangerie:
          foreignAlias: BoulangeriePains
        Pain:
          foreignAlias: BoulangeriePains
     
    Pain:
      columns:
        title: string(150)
        description: string

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Bonsoir,

    Oui mais dans ce cas comment comment je sais de quel type de pain il s'agit ?

    Concrètement je cherche à voir ma table Pain avec :
    id : clé primaire
    typePain_id : une clé étrangère
    boulangerie_id : une deuxième clé étrangère

    EDIT :

    Bon après avoir changé ma relation 1-1 pour une relation 1-n et quelques rebuild ca a marché.

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    Ce que je t'ai donné en exemple est une relation n-n entre boulangerie et pain. Chaque boulangerie peu produire un ou plusieurs pain et chaque pain peut être produit dans une ou plusieurs boulangerie.

    La table BoulangeriePain n'est qu'une table de liaison qui ne devrait jamais être directement affichée.

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

Discussions similaires

  1. [2.x] les relation entre entités avec Doctrine (Symfony)
    Par mandzokich dans le forum Symfony
    Réponses: 13
    Dernier message: 19/08/2014, 01h39
  2. Réponses: 3
    Dernier message: 04/05/2014, 14h05
  3. Réponses: 1
    Dernier message: 25/08/2013, 01h02
  4. [ZF 1.7] problème avec doctrine + oracle sur zendframework
    Par cornnery dans le forum Zend_Db
    Réponses: 1
    Dernier message: 09/03/2009, 17h41
  5. Problème de relation 1-N avec hibernate 3
    Par otam_otam dans le forum Hibernate
    Réponses: 3
    Dernier message: 15/04/2008, 11h12

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