집 >데이터 베이스 >MySQL 튜토리얼 >기본 키가 아닌 열에 외래 키를 언제 사용해야 합니까?
외래 키 제약 조건 및 기본 키가 아닌 열
관계형 데이터베이스는 외래 키 제약 조건을 활용하여 테이블 간의 참조 무결성을 유지합니다. 외래 키는 일반적으로 기본 키를 참조하지만 기본 키가 아닌 열을 참조해야 하는 경우도 있습니다.
시나리오 일러스트
두 개의 테이블 table1
과 table2
을 살펴보겠습니다.
<code class="language-sql">CREATE TABLE table1 ( ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, AnotherID INT NOT NULL, SomeData VARCHAR(100) NOT NULL ); CREATE TABLE table2 ( ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, AnotherID INT NOT NULL, MoreData VARCHAR(30) NOT NULL, CONSTRAINT fk_table2_table1 FOREIGN KEY (AnotherID) REFERENCES table1 (AnotherID) );</code>
여기서는 table2
의 기본 키가 아닌 table1
열을 사용하여 AnotherID
과 table1
사이에 외래 키 관계를 원합니다.
기본이 아닌 키에 대한 외래 키 설정
빈도는 낮지만 기본 키가 아닌 열을 참조하는 외래 키를 생성하는 것이 가능합니다. 그러나 기본 키가 아닌 열에는 고유 제약 조건을 적용해야 합니다.
<code class="language-sql">ALTER TABLE table1 ADD CONSTRAINT UQ_AnotherID UNIQUE (AnotherID);</code>
이 고유 제약 조건은 AnotherID
내에서 table1
값의 고유성을 보장하여 외래 키 대상으로 사용할 수 있도록 합니다.
권장 대안
이상적으로는 참조 무결성을 강화하기 위해 외래 키가 기본 키를 참조해야 합니다. 가능하다면 table1
의 ID
열을 table2
의 외래 키 대상으로 활용하도록 데이터베이스 스키마를 다시 설계하세요. 이렇게 하면 기본 키가 아닌 열에 대한 고유 제약 조건을 관리할 필요가 없습니다.
위 내용은 기본 키가 아닌 열에 외래 키를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!