외국 열쇠는 어디에 보관해야 합니까?
두 테이블 사이에 관계가 있는 경우(두 테이블 모두 기본 키가 있음), 어떤 테이블이 외부 키를 저장해야 하는지에 대한 결정을 안내해야 합니까?관계의 성격이 중요할 수도 있고(일대일, 일대다, 다대다, 단방향, 양방향), 액세스 패턴도 중요할 수도 있다는 것을 알고 있습니다.하지만 그 결정을 내리는 체계적인 방법은 무엇입니까?
그 관계에 있는 아이는 어떤 테이블입니까?
이에 응답하면 상위 [일반적으로] 기본 키를 참조하여 외부 키 열이 필요한 테이블을 알 수 있습니다.그건 일대일 관계를 위한 거죠
다 대 다의 경우 두 테이블의 키를 기본 키로 사용하여 세 번째 테이블을 추가해야 합니다.
"그렇지만 그 결정을 내리는 체계적인 방법은 무엇입니까?"
두 가지 선택 사항이 있는 것 같습니다."원" 사이드는 "많은 사이드"에 FK로, 또는 "많은" 사이드는 "원" 사이드에 FK가 있습니다.
실제로 선택지를 살펴봅시다.
"다수" 측면의 모든 행은 "하나" 측면의 하나의 행을 쉽게 참조할 수 있습니다.
"하나" 측면의 하나의 행은 "많은" 측면의 모든 행을 절대 참조할 수 없습니다.
"많은" 쪽이 FK에서 "하나" 쪽을 갖는 기술은 단 한 가지입니다.
실제 구현 선택은 한 가지뿐입니다."결정"이란 없습니다.
외부 키는 단순히 다른 테이블의 키 필드를 나타내는 하나의 테이블의 필드입니다.외국의 핵심 분야를 그렇게 파악하는 것이 절대적으로 중요한 것은 아닙니다.즉, FORANCE KEY를 명시적으로 추가할 필요가 없습니다...외부 키가 되도록 테이블에 대한 REFERNS 제약 조건입니다.두 테이블을 함께 결합하면 부모 테이블의 기본 키가 자식 테이블의 외부 키와 동일하게 설정됩니다.기본 키가 아닌 것이 외국 키입니다.
일대일 관계에서 FK는 "많은" 편에 속합니다.PK가 진행되는 곳이고 기본 키의 정의에 중복 허용 금지가 포함되어 있기 때문에 "하나" 쪽으로 갈 수 없습니다.
다대다 관계인 경우 표를 다시 작성해야 하므로 두 개의 일대일 관계와 중간 해결 표가 필요합니다.
좋아해를primary key
,aforeign key
한의다다a의의 한 이기도 합니다.constraint
테이블의 하나 이상의 열에 배치됩니다.
foreign key
키 열과 관련 열 사이의 연결을 다른 테이블에 설정합니다.(외부 키 열을 동일한 테이블 내의 열에 연결할 수도 있습니다.)
외부 키가 포함된 테이블은 하위 테이블로 간주되며, 외부 키가 참조하는 테이블은 상위 테이블입니다.
키포인트
foreign key
키 제약 , 다른 수 있습니다. 해당 참조는 동일한 테이블 또는 다른 테이블에 있을 수 있습니다.- A
foreign key
또한 참조된 제약 조건의 열 개수와 동일한 열 개수를 가져야 하며 데이터 유형은 해당 열 간에 일치해야 합니다. - 와 달리
Primary key
,Foreign key
열에 NULL 값이 포함될 수 있습니다.
언급URL : https://stackoverflow.com/questions/3293791/where-should-i-store-a-foreign-key
'IT' 카테고리의 다른 글
ORA-02264: 기존 제약 조건에서 이미 사용된 이름 (0) | 2023.09.15 |
---|---|
NodeJS/express:캐시 및 304 상태 코드 (0) | 2023.09.10 |
jQuery를 사용하여 클릭 시 앵커 텍스트/href를 가져오는 방법? (0) | 2023.09.10 |
각도 6 : http 통화 중 응답 유형을 텍스트로 설정하는 방법 (0) | 2023.09.10 |
팬더의 데이터 프레임에서 숫자가 아닌 행을 찾습니까? (0) | 2023.09.10 |