Q&A
Q&A
엔코아의 제품과 서비스에 대한 기술지원 Q&A입니다.
여러분의 질문에 신속하게 답변 드릴 수 있도록 최선을 다하겠습니다.
Re : [designer] Unique Key를 외부키로서 사용할 경우..
- 작성일2005/12/17 17:58
- 조회 3,372
안녕하세요!
일단 관계선이 실선(Mandatory)일 경우는
참조하는 키값을 외부키가 반드시 가져야 하는 것을 의미합니다.
점선(Optional)일 경우에는 참조하는 키값을 외부키가
반드시 가져야 할 필요는 없지요.
그런 의미에서 관계선이 점선(Optional)일 경우는
외부키는 값을 안가져도 되니까 Nullable을 허용하는 것입니다.
하지만 관계선이 실선(Mandatory)일 경우에는
외부키가 Null값을 가지는 경우는 과연 없냐는 문제인데
만약 지금 상황과 같이 참조키값 자제가 Null값을 갖는 상황이라면
그 키 값도 받을 수 있지 않을까요.
더군다나 키구성이 단일컬럼이 아닌 복합컬럼으로
구성되어 있다면 그 중 일부 컬럼들은 Nullable일 수 있습니다.
이때 외부키는 Nullable컬럼들의 값을 받을 때는 관계선이
점선이든 실선이든 Null값을 가질 수 있겠지요.
그런 의미에서 관계선이 실선일 경우에도 키값 자체가 Nullable일 경우는
받는 외부키도 Nullable 성격을 가지는 것을 기본으로 설정해놓았습니다.
답변이 되었는지요.
감사합니다.
>안녕하세요.
>나름대로 이런저런 모델링 공부를 좀하고 있는데요.
>한가지 궁금한 사항이 생겼습니다.
>
>예를 들면, 회원 엔터티가 있고, 회원번호가 UID 입니다.
>회원 엔터티 속성 중에 회원아이디(보조키)가 있는데, 모든 회원이 회원아이디를 갖는 것은 아니지만, 회원아이디는 유일합니다.
>(회원아이디는 Nullable + Unique)
>또, 포인트 엔터티가 있고, 회원 엔터티와 1:다 관계가 있습니다.
>(한 회원이 여러 포인트 내역을 가질 수 있음)
>그리고 회원아이디를 갖는 회원만이 포인트 내역을 가질 수 있습니다.
>
>위의 경우에 DA# Designer에서 포인트 테이블에서 회원 테이블의 PK인 회원번호를 상속받는게 아니고,
>Unique Key인 회원아이디(회원 테이블에서 Nullable)를 상속받아 사용하려고 합니다.
>그리고 포인트 테이블의 회원아이디(외부키)를 Not Null로 설정하려고 합니다.
>회원 테이블의 회원아이디가 Nullable이기 때문에 상속받은 포인트 테이블에서도
>자동으로 Nullable이 되고, Not Null 설정이 되질 않네요..
>포인트 테이블 입장에서 관계선은 분명 실선으로 나타나는대로 말입니다.
>(포인트는 하나의 회원을 반드시 갖는다!)
>
>위 문제가 의미적으로 포인트테이블의 회원아이디가 NULL이 되는 것이 맞기 때문에
>그렇게 구현이 된 것인지, 아니면 혹시나 버그(?)인지가 궁금합니다.
>만약 의미적으로 맞는 거라면 왜 그런지 설명해 주셨으면 좋겠습니다.
>
>감사합니다.