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 :

clés primaire dans schema.yml


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 39
    Par défaut clés primaire dans schema.yml
    Bonjour tout le monde,

    Enfaite, je sais pas comment faire pour ecrire une clé primaire dans une table qui fait réference à une autre clé primaire d'une autre table. Et cette derniere est composé de deux champs. donc voila j'ai fais ça mais ça marche pas. Dans le fichier sql généré il prend en compte que la derniere clé étrangére (c'est à dire "network"). voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bus_id:  { type: integer, foreignTable: portal_bus, foreignReference: service, foreignReference: network, required: true, primaryKey: true, onDelete: cascade }
    avec (service,network) c'est la clé primaire de la table "portal_bus"

    y a t'il quelqu'un qui sais comment faire ?

    Cordialement,

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Par défaut
    Alors voila, il y a vait un exemple sur un tutoriel de Jobeet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    JobeetCategoryAffiliate:
      tableName: jobeet_category_affiliate
      columns:
        category_id:  { type: integer, primary: true }
        affiliate_id: { type: integer, primary: true }
      relations:
        JobeetCategory:  { onDelete: CASCADE, local: category_id, foreign: id }
        JobeetAffiliate: { onDelete: CASCADE, local: affiliate_id, foreign: id }
    Dans tes tables où il y a tes clés primaires, tu ne déclare pas tes id surtout.

    Quand tu déclare tes relations c'est comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Nom de ta table] : { onDelete:Cascade, local : [Nom de ton Champ dans la table courante], foreign : id }
    J'espère avoir été assez clair, et avoir bien compris ta question.

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 39
    Par défaut
    Merci Malonix

    Mais enfaite, le souci que j'ai c'est que tu vois par exemple dans le code que tu m'a donné foreign: id . mon id correspond à deux clés primaire de ma table portal_bus.
    ma table portal_bus a deux clés primaire (c'est un couple qui fait l'unicité de l'objet bus), et je connais pas la structure pour les réferencés les deux dans le code que j'ai donné. Voila je sais pas si j'ai été clair ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 117
    Par défaut
    Euh juste si tu pouvais faire voir ton schema.yml, voir ce que tu as fait, et donc si je comprends bien, en gros : Tu as 3 tables :

    - Une table A avec une clé primaire
    - Une table B avec une clé primaire
    - Une table C avec deux clé primaire qui sont référencés par les 2 autres?

  5. #5
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 39
    Par défaut
    oui voici le code:
    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
    portal_bus:
        service:      { type: integer, required: true, primaryKey: true }
        network:      { type: integer, required: true, primaryKey: true }
        env:          { type: varchar(10), required: true, foreignTable: portal_environment, foreignReference: name }
        application:  { type: varchar(32), required: true }
        iam_ref:      { type: varchar(3), required: true, foreignTable: portal_iam , foreignReference: ref }
        module:       { type: varchar(50) }
        description:  { type: varchar(255) }
        status:       { type: varchar(5), required: true }
        entity:       { type: varchar(32), required: true }
        creator:      { type: varchar(80), required: true }
        modifier:     { type: varchar(80) }
        created:      { type: timestamp, required: true }
        modified:     { type: timestamp }
        reference:    { type: varchar(32) }
        active:       { type: boolean, required: true, default: 0 }
        tags:         { type: varchar(20) , foreignTable: portal_label, foreignReference: name }
        alias:        { type: varchar(32), required: true }
        prefix:       { type: varchar(255) }
    
    
      portal_bus_label:
        bus_id:       { type: integer, foreignTable: portal_bus, references: {service, network}, required: true, primaryKey: true, onDelete: cascade }
        label_id:     { type: varchar(20), foreignTable: portal_label, foreignReference: id, required: true, primaryKey: true, onDelete: cascade }
    
    

    le probléme est la ou c'est en rouge!
    Je sais pas si tu vois ce que je veux faire ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut
    Je ne comprends pas la logique de ton schema, pourquoi ne pas tout simplement rajouter un attribut unique dans ta table portal_bus et t'en servir de clé dans portal_bus_label?
    Je sais pas si je suis clair

Discussions similaires

  1. [1.x] Erreur propel-build-model dans schema.yml?
    Par charliejo dans le forum Symfony
    Réponses: 2
    Dernier message: 19/10/2009, 15h07
  2. [1.x] index=unique dans schema.yml
    Par kamdad dans le forum Symfony
    Réponses: 4
    Dernier message: 23/04/2009, 18h55
  3. clés primaire dans access 2007
    Par ChTiRiBi dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/08/2008, 11h46
  4. Réponses: 4
    Dernier message: 15/01/2007, 22h51
  5. Comment avoir 2 clés primaires dans une table
    Par Guigui_ dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 18/01/2005, 09h29

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