2015-01-23 4 views
0

누구나 program_segments_program_id_foreign이라는 명명 규칙을 사용하여 진행 상황을 설명 할 수 있습니까? 왜 그것이 필요한지 이해하고 싶습니다. 함수 호출은 테이블 이름을 지정하고 fk를 이미 삭제하고 있습니다. 열 이름은 program_id ... dropForeign('program_id')이 아닌 이유는 무엇입니까? Laravel은이 형식이 필요한 특별한 이름으로 무엇을하고 있습니까? 데이터베이스 컨벤션이나 뭐 그런 거니? 나는 아직도 배우고있다, 고마워!Laravel dropForeign : 인수는 어떻게 결정됩니까?

 Schema::table('program_segments', function(Blueprint $table) { 
     $table->foreign('program_id')->references('id')->on('programs') 
        ->onDelete('no action') 
        ->onUpdate('no action'); 



    Schema::table('program_segments', function(Blueprint $table) { 
     $table->dropForeign('program_segments_program_id_foreign'); 

답변

0

사실은 MySQL의에서 외래 키 제약 조건 이름은 프레임 워크로, Laravel 모든 DBMS를 지원하기 위해 규칙을 선택해야합니다, 데이터베이스에 전역하고, 사용중인 DBMS에 따라 달라집니다. 더욱이, 규칙이 없으면 제약 조건 위반 (업데이트, 삭제 등)을 할 때 외래 키가 연결된 위치 (특히 거대한 DB와 복잡한 쿼리)를 찾는 것이 매우 어렵습니다.

관련 문제