2010-10-15 12 views
2

J'utilise Doctrine 1.2 et la recherche de la syntaxe correcte pour créer une relation 1: n entre deux tables dans ma schema.ymlDoctrine: 1 à plusieurs avec plusieurs clés étrangères

d'habitude cela se fait par:

BookChapter: 
    columns: 
    ... 
    relations: 
    Book: 
     class: Book 
     local: book_id 
     foreign: id 
     type: one 
     onDelete: cascade 

Cependant, dans mon cas particulier il y a 2 clés primaires étrangères.

BookReader 

book: 
    type: integer(8) 
    primary: true 
reader: 
    type: integer(8) 
    primary: true 


BookReaderDetails 

book_id: integer(8) 
reader_id: integer(8) 
... 

Est-il possible de définir une telle relation avec un fichier de schéma de doctrine?

Répondre

3

Doctrine ne fonctionne pas bien avec plusieurs clés primaires à moins qu'elles ne soient utilisées comme table de référence plusieurs-à-plusieurs (table de jonction).

Si vous voulez une relation un-à-plusieurs et pas plusieurs-à-plusieurs, il est probablement préférable d'ajouter une colonne de clé primaire à BookReader. Vous pouvez ensuite mettre un index unique sur le livre et le lecteur.

+0

Je dois admettre que mon exemple est mauvais. Malgré le fait que cela n'a pas beaucoup de sens, mon intention est de créer une relation de un à plusieurs entre une table de jonction et une autre table. – jantimon

Questions connexes