2011-08-15 24 views
0

我已經知道這是不可能的,在Symfony的1和1學說多個主鍵的工作,但你們知道有什麼好的解決辦法?具有Doctrine 1和Symfony 1的多個主鍵?

+1

甲表只能有一個由定義主鍵。 –

+2

@Dan:但您可以在多列上創建主鍵。我認爲那是他需要的。 – scube

回答

0

除了許多一對多的關係doctrine1不超過多colums主鍵工作良好。但是,如果你想使用許多一對多的關係像這樣使用:

BlogPost: 
    columns: 
    user_id: integer 
    title: string(255) 
    body: clob 
    relations: 
    User: 
     local: user_id 
     foreign: id 
     type: one 
     foreignType: one 
     foreignAlias: BlogPosts 
    Tags: 
     class: Tag 
     foreignAlias: BlogPosts 
     refClass: BlogPostTag 
     local: blog_post_id 
     foreign: tag_id 

Tag: 
    columns: 
    name: string(255) 

BlogPostTag: 
    columns: 
    blog_post_id: 
     type: integer 
     primary: true 
    tag_id: 
     type: integer 
     primary: true 
    relations: 
    BlogPost: 
     local: blog_post_id 
     foreign: id 
     foreignAlias: BlogPostTags 
    Tag: 
     local: tag_id 
     foreign: id 
     foreignAlias: BlogPostTags 

如果你不想/需要使用許多一對多的關係,它能夠更好地使用在多個列的唯一關鍵。

1

常見的解決方法是一個auto_increment鍵添加到許多一對多分解表,而不是有定義關係,才使這些表標準外鍵關係。只要你有一個在兩列的指數表現會很好。

+0

這通常是處理這個問題的最好方法。 –