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 :

Probleme schema.yml et fixture.yml


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 96
    Par défaut Probleme schema.yml et fixture.yml
    Bonjour,

    Voila le début du problème. Je l'avais poster sur la partie doctrine, mais je viens vers vous (c.f. http://www.developpez.net/forums/d93...ulti-colonnes/)

    J'aimerais savoir comment gérer des clé primaire composé.

    J'ai faire un build-schema pour qu'il me génère mes models mais maintenant, j'aimerais pouvoir insérer des jeux d'essais dans mon fixture.yml

    Je bloque lorsque je tente de vouloir faire la relation de type N-M ou sur au moins une table, il y a une clé primaire composé.

    Je sais qu'il faut utiliser TABLE1: label de l'insertion mais j'ai droit à une jolie erreur 1452 (Erreur de foreign key).

    Je m'y prend peut être mal donc je vien vers vous afin d'avoir un exemple si possible.


    Merci d'avance,

    Cordialement,

  2. #2
    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
    Pour voir, mets ton shema.yml, on ne sait jamais.

    D'expérience, les clefs composées, doctrine 1.2, il n'aime pas du tous, mais alors vraiment pas du tout. sauf dans les liaison n-n, on est peut-être sauvé !

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 96
    Par défaut
    J'ai mis le fichier en un peu simplifié Mais en gros, un article est identifié par une référence et un indice. Et un article peut être composé de plusieurs autres articles et donc, je me retrouve avec une relations N-M portant sur 2 clé primaire de chaque côté.

    Je me suis dit que j'allais peut être mettre un id afin de n'avoir lus qu'une seul clé de part-et-d'autre.

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    ArticleType:
      connection: doctrine
      tableName: article_type
      columns:
        reference:
          type: string(20)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        indice_conf:
          type: string(20)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        id_ss_fam:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
        nom:
          type: string(45)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        ArticleSousFamille:
          local: id_ss_fam
          foreign: id_ss_fam
          type: one
        ArticleComposition:
          local: reference
          foreign: reference
          type: many
        ArticleComposition_2:
          class: ArticleComposition
          local: indice_conf
          foreign: indice_conf
          type: many
        ArticleComposition_3:
          class: ArticleComposition
          local: reference
          foreign: reference1
          type: many
        ArticleComposition_4:
          class: ArticleComposition
          local: indice_conf
          foreign: indice_conf1
          type: many
        SitePossedeArticle:
          local: reference
          foreign: reference
          type: many
        SitePossedeArticle_2:
          class: SitePossedeArticle
          local: indice_conf
          foreign: indice_conf
          type: many
    ArticleComposition:
      connection: doctrine
      tableName: article_composition
      columns:
        reference:
          type: string(20)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        indice_conf:
          type: string(20)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        reference1:
          type: string(20)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        indice_conf1:
          type: string(20)
          fixed: false
          unsigned: false
          primary: true
          autoincrement: false
        quantite:
          type: integer(4)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
      relations:
        ArticleType:
          local: reference
          foreign: reference
          type: one
        ArticleType_2:
          class: ArticleType
          local: indice_conf
          foreign: indice_conf
          type: one
        ArticleType_3:
          class: ArticleType
          local: reference1
          foreign: reference
          type: one
        ArticleType_4:
          class: ArticleType
          local: indice_conf1
          foreign: indice_conf
          type: one

    Problème : Si je met qu'un seul id. Je me retrouve bloqué car j'ai aussi une relation ternaire et 1 des 3 récupère la clé primaire de chacun.

  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
    On n'a pas, je pense que c'est volontaire, les table sous familles et reference.

    Par contre, tu as fait un bon terrible hors des formes normales avec les multiples liaisons entre article_type et article_composition. Hors, dans ce que tu décris : "Et un article peut être composé de plusieurs autres articles ". Mais tu n'expliques pas la différence entre article type et article composition.

    A priori de ce que je comprend de tes explications, mais qui ne colle pas avec le schéma :
    • un article a une sous famille, mais une sous famille peut avoir plusieurs article
    • un article a plusieurs référence, mais une référence n'a qu'un article
    • un article peut être lié à plusieurs articles, mais un article ne peut être lié qu'à un article ?


    La relation au seins de tes articles n'est pas clair, est-ce qu'un article qui est lié à plusieurs articles peut aussi être référencé par plusieurs articles ? Ou avons nous un relation hiérarchiques avec plusieurs "root" ?

    De plus, que représente physiquement l'article (ce serait plus simple si je pouvais visualiser, pour l'instant, je pense à des articles sur un blog, mais je pense être à côté de la plaque).

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2010
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 96
    Par défaut
    Bonjour,

    C'est plus des articles genre produit fabriqué.

    1/ En faite, un article est composé d'une référence et d'un indice mais deux articles peuvent avoir la même référence et un indice différent. Et vice versa.

    2/ Un produit est composé d'un autre produit. Genre une voiturepossède 4 roues donc on aura une référence + indice pour la voitureet une référence + indice pour la roue et une quantité de 4 pour la relation de composition.

    3/ Un produit fait partie d'une famille genre voiture. Et on aura donc par exemple différentes familles (break / citadine) .... (C'est un exemple).

    Le schéma a été généré par doctrine lui-même, avec un build-schema.

    J'espère avoir été clair.

    Merci de ton aide et n'hésite pas s'il y a un point flou.

  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
    Je pense que les tables références et indices, on s'en fout (un peu là). Par contre, on considère qu'un seul article peut avoir une combinaison référence + indice donnée, exacte ?

    Pour garder ton exemple de voiture.

    La voiture est un article, elle est composée de 4 roues. Dans ce cas, tu mets 4 fois l'objet roue ou une fois l'objet roue mais un argument nombre à 4 ?

    La roue peut être utilisée sur plusieurs voitures différentes ?

    La roue comprend une jante, un pneu et 4 boulons, la jante comprend un enjoliveur. Quant tu fais une recherche sur la voiture, tu dois avoir tous les éléments, quel que soit la profondeur ?

    Doit-on considéré que l'article voiture (final) est au même niveau que l'article roue ?

Discussions similaires

  1. [1.x] Données fixtures.yml qui ne se chargent pas.
    Par Hotei dans le forum Symfony
    Réponses: 1
    Dernier message: 23/07/2011, 13h29
  2. [1.x] Impossible de charger le fichier fixtures.yml
    Par fastone650 dans le forum Symfony
    Réponses: 3
    Dernier message: 01/12/2010, 12h19
  3. [1.x] Problème d'encoding : fixtures.yml, generator.yml voire autres
    Par bilbonec dans le forum Symfony
    Réponses: 8
    Dernier message: 20/09/2010, 09h31
  4. [1.x] Adresse IP dans fixture.yml
    Par kamdad dans le forum Symfony
    Réponses: 5
    Dernier message: 28/04/2009, 10h13
  5. [1.x] Question à 2 francs sur les fichiers fixture.yml
    Par Malonix dans le forum Symfony
    Réponses: 2
    Dernier message: 22/04/2009, 10h19

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