inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴

상속 관계 모델링의 적용 기준 질문

75

bebe

작성한 질문수 11

0

안녕하세요 영한님!

"8. 상속 관계 설계" 강의에서, 상품 테이블을 예시로 들어, 슈퍼타입-서브타입 모델링을 설명해주셨는데요!

 

만약에 서브타입이 다른 테이블과 관계를 맺게 된다면, 이 케이스에도 슈퍼타입-서브타입 모델링을 적용하는게 괜찮을지 궁금하여 질문을 드립니다!

 

예를 들어, 신고 내역을 저장하는 테이블을 모델링하는 상황에서, 회원 신고/게시글 신고/댓글 신고/그룹 신고 이렇게 나뉜다면 슈퍼타입-서브타입 상속 전략을 사용해도 괜찮은지 궁금합니다.

sql mysql dbms/rdbms 소프트웨어-설계 SQLD

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. bebe님!

상속 관계를 직접 모델링할 때, 서브타입이 다른 테이블과 관계를 맺게 되는 경우에도 슈퍼타입-서브타입 모델링을 적용할 수 있습니다. 그러나 구현의 복잡성이 증가하고, 관리의 어려움이 있을 수 있기 때문에 사용에 주의가 필요합니다.

예를 들어, 신고 내역처럼 다양한 타입의 데이터를 저장해야 하는 경우, 슈퍼타입-서브타입 모델링을 통해 각 타입별 테이블을 따로 분리할 수 있습니다. 이렇게 하면 각 서브타입에 특화된 컬럼을 정의하고, 관계를 관리하기 용이할 수 있습니다.

참고로, 상속관련 문의 드립니다.상속과 슈퍼-서브타입의 차이점? 게시물을 함께 보시면 도움이 될 것입니다. 특히, 데이터베이스 상속과 객체지향 상속의 차이점, 그리고 실무에서 상속 모델링을 어떻게 적용할 수 있을지에 대한 논의가 잘 설명되어 있습니다.

취할 수 있는 또 다른 접근 방식으로는 “상속관계는 최소한으로 사용하고, 대신 에그리게잇 내의 도메인 모델과 관계를 사용할 것”입니다. 이는 데이터베이스의 복잡성을 줄이고 성능 이슈를 피할 수 있는 방법이기도 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

실제 FK제약조건을 설정하지 않는이유

0

30

2

히스토리 관련 질문

0

57

2

통계 데이터 수정 질문

1

63

2

공통 코드에서 Redis Pub/Sub은 최근 실무에서 쓰이진 않나요?

0

133

2

DELETE -> SELECT 질문 드립니다.

0

48

1

TTL 캐싱에 대한 질문

0

78

1

공통 코드 사용시 컬럼 타입 설정

0

83

1

history_creted_at과 valid_from

1

65

2

함수 기반 인덱스 (Function-Based Index)

0

68

1

추후 강의 질문있습니다

0

124

2

실무 통계 질문(고민) 드립니다..!

0

91

2

Json 컬럼의 객체 맵핑

0

64

1

[Deprecated] 오타 제보

0

86

1

오타 제보

0

73

2

category_path 테이블에서 idx_descendant 인덱스를 생성하는 이유가 궁금합니다

0

96

2

물리적으로 외래 키 제약 조건을 설정하지 않을 때

0

97

1

`전체 행 스냅샷 이력 테이블`의 대상 테이블 칼럼 변경

1

84

1

common_code_detail의 code 변경 가능성

1

112

1

[해결책 - 코드값 분리] 중 orders(order_status) - common_code(code) 타입 불일치 제보

0

87

1

이미 문자열 타입인 컬럼을 캐스팅하는 이유

0

106

2

계층 구조 모델링 기타 방법들

0

106

1

섹션 9의 퀴즈가 영어로 출력되요.

0

106

2

섹션 6 SOFT DELETE) UNIQUE 제약 조건 + 가상 컬럼

0

77

1

섹션2 공통 코드) 애플리케이션 ENUM을 API에 그대로 노출한다면?

0

126

1