A, B, C 세 개의 테이블이 있다고 가정할 때 A table의 cond 칼럼값에 따라 code
라는 칼럼을 각각 다른 테이블에 대한 foreign key로 정의할 수 있는 방법이 있는지
궁금해서 질문을 올립니다.
자세히 설명하자면...
A table (cond, code, col1, col2...)
B table (code, name, desc, ...)
C table (code, name, colA, colB, ...)
와 같은 테이블이 있고 각 테이블에서 A:code, B:code, C:code 는 같은 데이터 타입
입니다.
만약 A table의 어트리뷰트에서 cond 값이 B라면 A table의 code는 B table의 foreign key, 마찬가지로 A table의 cond 값이 C라면 A table의 code는 C table의
foreign key로 선언할 방법이 없느냐 하는 겁니다.
물론 B와 C table의 Primary key는 당근 code입니다.
B와 C table을 합치라고 하실 수도 있겠지만 code,name칼럼을 제외한 다른 칼럼은 상이한 데이터 타입과 칼럼수를 가집니다. A table은 이에대한 일종의 Master table이고요.
물론 어플리케이션단에서 값을 체크하고는 있지만 테이블 레벨에서 const를 주고
싶어서 궁리를 해 봤는데 모르겠더군요.
고수님들의 조언 부탁 드립니당.
이러한 스키마를 가지는 데이터에 대한 효율적인 테이블 디자인에 대한 조언도 부탁드릴께엽. 궁여지책으로 이렇게 만들긴 했는데... 과연 잘하는 짓인지 의심스럽군요.
모두들 새해 복 많이 받으시길...^^
|