2011-08-19 3 views
1

나는이 있습니다복잡한 기본 키가있는 경우 하나의 열에 대해서만 외래 키를 만들 수 있습니까?

ID1 INTEGER PRI 
ID2 INTEGER PRI 
NAME VARCHAR 

는 지금은 필요 :

ID1_REF INTEGER REFERENCE TO ID1 
DESCRIPTION VARCHAR 

때문에, 하나 개의 컬럼은 기본 키의 하나 개의 컬럼이 아닌 2 열을 의미합니다. 관계형 데이터베이스에서도 가능합니까?

+0

MySQL은 해당 열을 사용하는 다른 인덱스를 생성하고이를 가리키는 FK를 생성합니다. PK의 일부를 재사용하지 않습니다. –

+1

조금 더 자세히 설명해주세요. 외래 키는 상위 레코드를 고유하게 식별하는 하나 이상의 필드를 참조해야합니다. 부모 테이블에 고유성을 식별하는 데 두 개의 필드가 필요한 경우 참조하는 필드가 고유하지 않을 때 외부 키가 부모 레코드를 식별 할 수있는 방법은 무엇입니까? – Bueller

답변

1

아니요. 외래 키는 참조 된 테이블에서 기본 키 또는 다른 수퍼 키 (실제로 선언 된 기본 키인지 여부와 관계없이 해당 테이블의 행을 고유하게 식별하는 속성/열 집합)를 참조해야합니다. Wikipedia article도 읽을 가치가 있습니다.

0

기술적으로 원하는 것을 할 수 있습니다. 그러나 이론적으로 이는 기본 키와 외래 키의 기본 개념을 손상시킵니다. 실제로 그것은 용어에 불과합니다. 귀하의 예제에있는 키가 외래 키라고 부를 수 있는지 확실하지 않습니다. 어쩌면 우리는 그것을 부분적인 외래 키라고 부를 수 있습니다.

관련 문제