답변:
외래 키 이름은 무엇이든 될 수 있지만 실제로 테이블 이름을 먼저 지정하는 규칙을 따르는 것이 좋습니다.
가장 중요한 이유는 외래 키 이름 이 데이터베이스 내에서 고유 해야하기 때문입니다 (인덱스 이름과 반대로 각 테이블 내에서만 고유해야 함). 따라서이 규칙에 따라 외래 키 이름은 각 테이블 내에서 고유해야합니다.
개인적으로 나는 협약을 사용합니다 [table_name]_fk_[field_name]
.
외래 키의 이름을 지정하려면 외래 키 대신 테이블의 제약 조건을 명시 적으로 설명해야합니다.
간단한 방법 (자동 명명, 결과 [table_name]_ibfk_[index]
) :
ALTER TABLE `[table_name]`
ADD FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);
명시 적 방법 (결과 [table_name]_fk_[field_name]
) :
ALTER TABLE `[table_name]`
ADD CONSTRAINT `[table_name]_fk_[field_name]`
FOREIGN KEY (`[field_name]`)
REFERENCES `[foreign_table_name]`(`[foreign_field_name]`);