2014-07-09 3 views
0

회원, 팀 및 팀 멤버가 3 개인 테이블이 있습니다. 각 팀은 여러 명의 회원을 가질 수 있지만 반복해서는 안됩니다. 또한 회원들은 동시에 많은 팀에 속할 수 있습니다.Laravel 4 - 복수의 외래 키를 설정하는 방법

동일한 구성원을 두 번 테이블에 추가 할 수 없도록 teammember 테이블을 설정하려고합니다.

Schema::create('teammembers', function(Blueprint $table) { 
    $table->increments('id'); 
    $table->integer('team_id'); 
    $table->integer('member_id'); 
} 

가 난 단지 두 키의 조합에 영향을 미치는 이유는 앞서 설명한 위해 내가 제한을 필요로하는지 스스로 설정 외부 키를에,하지만 내 경우에 알고 내 마이그레이션에서 나는이 있습니다.

+1

'$ table-> unique ([ 'team_id', 'member_id'])'는 compund unique index를 만들지 만 여전히 'attach' 메소드는 피벗 테이블에 새로운 행을 추가하려고 시도 할 것이므로 조심해 –

+0

복합 기본 키는 다음과 같이 구현할 수 있습니다 :'$ table-> primary ([ 'keyone', 'keytwo']); ' – ArjanSchouten

+0

@deczo, 당신의 솔루션이 마침내 올바른 것이 었습니다. 나는 그것을 받아 들일 수 있는가? –

답변

1

$table->unique(['team_id','member_id'])은 compund unique index를 만들지 만 여전히 attach 메서드는 피벗 테이블에 새 행을 추가하려고하므로 조심해야합니다.

관련 문제