> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 외래 키가 고유하지 않은 인덱스를 참조할 수 있습니까?

MySQL에서 외래 키가 고유하지 않은 인덱스를 참조할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2025-01-08 08:47:42
원래의
842명이 탐색했습니다.

Can Foreign Keys Reference Non-Unique Indexes in MySQL?

MySQL의 외래 키 제약 조건 및 고유하지 않은 인덱스

외래 키는 일반적으로 일대일 관계를 설정하는 것으로 간주되지만 일부 경우에는 이 관계가 엄격하게 적용되지 않습니다. 이 동작은 특정 시나리오, 특히 MySQL을 사용할 때 일반적입니다.

MySQL에서 외래 키 제약 조건은 참조된 테이블의 고유하지 않은 인덱스를 참조할 수 있습니다. 이는 참조 테이블의 행이 인덱스 열을 기반으로 참조 테이블의 여러 행과 일치할 수 있음을 의미합니다.

일대일 원칙에서 벗어난 것처럼 보이는 것은 외래 키 제약 조건의 목적을 약화시키지 않습니다. 그것은 단지 독특함에 대한 다양한 해석을 허용할 뿐입니다. 데이터베이스는 정확한 일치를 요구하기보다는 최소한 하나의 레코드가 외래 키 값과 일치하는 것으로 충분하다고 간주합니다.

그러나 고유하지 않은 열에 외래 키를 사용할 경우의 영향을 반드시 고려해야 합니다. 이 경우 삭제해야 하는 일치하는 레코드가 두 개 이상 있을 수 있으므로 "ON DELETE CASCADE" 동작이 덜 명확해집니다.

혼란 가능성과 원하지 않는 결과를 방지하려면 외래 키 제약 조건을 정의할 때 UNIQUE(PRIMARY 포함) 및 NOT NULL 키를 인용하는 것이 좋습니다. 이는 명확한 동작을 보장하고 데이터 관계의 모호성을 방지합니다.

위 내용은 MySQL에서 외래 키가 고유하지 않은 인덱스를 참조할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿