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

PHP & Base de données Discussion :

[Doctrine] Fichier yaml avec clé primaire multi-colonnes


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 96
    Points : 29
    Points
    29
    Par défaut [Doctrine] Fichier yaml avec clé primaire multi-colonnes
    Bonjour,

    Je viens vers vous après des heures de recherche non productives.

    Je suis en train d'apprendre symfony et je me heurte à un problème. J'ai une table possédant une clé primaire composé de 2 colonnes. Avec celle-ci, j'ai une relation N-M sur une autre table. Ce qui me donne donc une troisième table possédant une clé primaire à 3 colonnes.
    2 clé étrangères de la première table.
    1 clé étrangère de la deuxième table.

    Est-ce possible ?

    Exemple :
    Personne(nom, prenom)
    livre(id, nom)
    ecrit(nom, prenom, id)

    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
    Personne:
      columns:
        nom:
          type: string(20)
          primary:true
        prenom:
          type: string(20)
          primary:true
    Livre:
      columns:
        nom:
          type: string(20)
          primary:false
    Ecrit:
      columns:
        nom:
          type: string(20)
          primary:true
        prenom:
          type: string(20)
          primary:true
        id:
          type: int
          primary:true
      relations:
        Personne1:
          local:nom
          foreign:nom
          class:Personne
        Personne1:
          local:prenom
          foreign:prenom
          class:Personne
        Livre:
          local:id
          foreign:id
          class:Livre
    il me génère mes 3 CREATE TABLE + 4 ALTER TABLE et c'est là le problème.

    J'ai 3 ALTER TABLE Ecrit, ce qui est normal mais j'ai 1 ALTER TABLE sur un champs de la clé primaire de la table Personne. Cela dépend si je met nom ou prenom en premiers dans relations. Et là c'est pas normal.

    P.S.: J'ai fait ça de tête étant donnée que j'ai pas le pc avec le yml en question ici. Désolé pour les faute syntaxique.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 96
    Points : 29
    Points
    29
    Par défaut
    Résolu en trichant :Mettre un id anonyme afin d'avoir une clé primaire à une seule colonne.

    Doctrine n'aime pas les clé primaire composé. Normalement, ce problème devrait être réglé dans la prochaine version d'après ce que j'avais pu lire sur internet. Wait & See

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Entre vendredi et aujourd'hui, j'ai cherché également comment définir plusieurs colonnes en tant que clé primaire avec Doctrine avec un fichier YML.

    Bizarrement, je n'ai rien trouvé sur le net pour le faire.

    J'ai un petit peu de reverse-engineering du code et j'ai trouvé qu'il suffisait de faire quelque chose de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    LsaUserFacture:
       columns:
          cle1_id:
             type: integer(3)
             primary: true
          cle2_id:
             type: integer(3)
             primary: true
          un_champ:
             type: date
             notnull: true
       options:
          primary: {cle1_id, cle2_id}
    Je suis d'accord, les "primary" font doublons, mais restent nécessaire (feature non terminé ?).

    Ce post est surtout pour ceux qui cherche ou chercheront après moi.

    A+

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

Discussions similaires

  1. [Débutant] Créer un fichier .csv avec un nombre de colonnes variables
    Par fahimonasri dans le forum MATLAB
    Réponses: 1
    Dernier message: 02/05/2016, 07h06
  2. Réponses: 4
    Dernier message: 23/12/2015, 17h52
  3. [Modèle Relationnel] Quand une clé primaire multi-colonne est-elle trop large ?
    Par Krystal_ dans le forum Schéma
    Réponses: 32
    Dernier message: 07/12/2015, 16h46
  4. [2008R2] Importation d'un fichier csv avec un nombre de colonnes variable
    Par wonderboutin123 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 10/03/2015, 12h47
  5. [Débutant] Importation de plusieurs fichiers .mat avec choix de la colonne
    Par Vincent32 dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/11/2012, 10h06

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