source

외부 키가 다른 외부 키를 참조할 수 있습니까?

ittop 2023. 9. 14. 23:36
반응형

외부 키가 다른 외부 키를 참조할 수 있습니까?

다른 테이블에서 다른 외국 키를 참조하는 외국 키를 가질 수 있습니까? 아니면 기본 키와 고유 키만 참조할 수 있습니까?

외부 키는 고유하게 정의된 모든 필드를 참조할 수 있습니다.해당 고유 필드 자체가 외부 키로 정의되는 경우에는 아무런 차이가 없습니다.외국의 핵심은 단지 참조 무결성을 시행하는 것입니다.필드를 외부 키로 만든다고 해서 필드 자체가 변경되는 것은 아닙니다.고유 필드라면 다른 FK의 타깃이 될 수도 있습니다.

예를 들어,

create table Table1(
     PK int identity primary key,
     ...
);
create table Table2( -- 1-1 relationship with Table1
     PKFK int primary key,
     ...,
     constraint FK_Table2_1 foreign key( PKFK ) references Table1( PK )
);
create table Table3( -- relates to Table2
    PKFKFK int primary key,
    ...,
     constraint FK_Table3_2 foreign key( PKFKFK ) references Table2( PKFK )
);

저는 DBMS가 없는 것으로 알고 있습니다.그리고 저도 호스의 의견에 동의합니다. 관행에는 아무런 문제가 없습니다.

다른 테이블에서 다른 외부 키를 참조하는 외부 키를 가질 수 있습니까?

네. 사실 허용된 답변과는 반대로, 참조되는 FK 열은 유일할 필요도 없습니다! - 적어도 MySQL에서는 마찬가지의 데모를 보려면 https://www.db-fiddle.com/f/6RUEP43vYVkyK2sxQQpBfj/0 을 참조하십시오.

이것은 만약 FK가 부모 테이블에서 유일하지 않다면, 누가 부모 행인가라는 질문을 제기합니다.FK의 목적은 부모와 자식의 관계를 맺는 것입니다.

언급URL : https://stackoverflow.com/questions/29528323/can-a-foreign-key-reference-another-foreign-key

반응형