2011-08-15 13 views
0

私はすでにそれがsymfonyの1とDoctrine 1で複数の主キーで作業することはできません知っているが、君たちは何か良い回避方法を知っていますか?複数のcolumsを超える主キーとの良好な動作しませんdoctrine1多対多の関係の他にDoctrine 1とSymfony 1の複数の主キー?

+1

テーブルに定義できる主キーは1つだけです。 –

+2

@ダン:しかし、あなたは複数の列に主キーを作ることができます。私は彼が必要とするものだと思う。 – scube

答えて

0

。あなたが複数の列の上に一意のキーを使用する多対多の関係のより良いを使用する必要があります/たくない場合は

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キーを追加し、よりもむしろ関係を定義する必要があり、ちょうどテーブルに標準の外部キー関係を作ることです。あなたが2つの列にインデックスを持っている限り、パフォーマンスは上手くいくでしょう。

+0

通常これを処理する最も良い方法です。 –

関連する問題