PHP/Laravel
Laravel 테이블에 복합키로 Unique 속성 주기
DSeung
2022. 7. 22. 16:55
Larvel에서 Migration을 작성할 때 단일 칼럼에 대한 Unique 속성이 아닌
여러 개의 컬럼을 대상인 복합키로 Unique 속성을 줘야 할 경우 아래처럼 사용이 가능합니다.
기존처럼 단일 컬럼에 Uniuqe를 부여하는 것이 아닌
public function up()
{
Schema::create('테이블 명', function (Blueprint $table) {
$table->id();
$table->foreignId('participant_id')->comment('참여자 아아디')->unique();
$table->foreignId('product_id')->comment('상품 아아디');
$table->timestamp('created_at')->index()->comment('참여 일시')->unique();
});
}
아래와 같이 $table->unique()을 통해 복합키로 unique 속성을 줄 수 있습니다.
public function up()
{
Schema::create('테이블 명', function (Blueprint $table) {
$table->id();
$table->foreignId('participant_id')->comment('참여자 아아디');
$table->foreignId('product_id')->comment('상품 아아디');
$table->timestamp('created_at')->index()->comment('참여 일시');
$table->unique(['participant_id','created_at']);
});
}
이로써 이 테이블은 participant_id와 created_at이 둘 다 동일한 컬럼이 존재할 수 없습니다.
반응형