본문 바로가기

fk2

FK를 어느쪽에 둘지 결정하기 모델링을 하다보면 어느쪽 테이블에 FK를 둘 지 하는 것이 고민이 될 때가 있습니다. 오늘은 그런 상황에 대해서 살펴보도록 할께요. 먼저 가장 단순하게, 다음과 같은 상황이라면 어떨까요? 1:M 관계 그림과 같이 1:M 관계라면 당연히 M쪽에서 FK를 가지게 됩니다. 아니 가져야 합니다. 1 쪽에서 M 개의 데이터를 수용할 수는 없으니까요. 팀장 쪽에서 팀원 이라는 속성을 팀원1~팀원100 정도로 가지고 있지 않는 한, 팀원의 정보를 가지는 것은 불가능합니다. 한 팀장 밑에 팀원은 여러명 일 테니까요. 데이터는 이렇게 들어가게 되겠지요. ( 아래그림처럼, 테이블에 들어갈 데이터를 예를들어 써보시면 확실하게 이해가 갑니다. 저도 평소에 뭔가 헷갈린다 싶을 때는 꼭 데이터를 예를 들어 적어보는데요, 생각이 .. 2013. 8. 29.
FK가 양쪽에서 상속된다면? 갑자기 이런 질문을 받았더랬습니다. "이렇게 양쪽에서 FK를 상속 받는거 괜찮은건가요?" 라구요. ( 상속이라는 용어를 쓰려니, 불현듯, 이것이 객체지향에서 나온 용어이지 데이터 모델링에서 쓰던 용어는 아닌것 같아 맘에 걸리네요. 데이터 모델에서는 FK가 전달된다 라고 해야하나요? 하지만 어짜피 FK의 전달도 방향성이 있고, 양쪽 엔터티를 부모-자식간이라고 부르기는 하니 상속이라는 표현이 틀리진 않을것 같다는 생각을 잠시 뭉게뭉게~ 해봤습니다. ;-) ) 양쪽에서 상속받는 FK - 프로그램사용컬럼.프로그램ID 위 모델에서 프로그램사용컬럼 테이블의 테이블ID는 프로그램사용테이블과 테이블컬럼의 양쪽에서 전달됩니다. 그런대, 동일한 속성명이기 때문에 하나의 컬럼으로 나타나 있구요. 이것이 괜찮은 것인지? 가능.. 2013. 8. 8.