태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

닷넷프레임워크 딥 다이브 - .NET Framework Deep Dive

POST : 아키텍처

Single Table Inheritance

클래스의 상속 hierarchy를 한 개의 테이블의 여러 필드에 각각 대응시킨다.

   

   

즉 상속 계층구조의 모든 멤버를 단 한 개의 table의 필드에 매핑 시키는 것이다. 이 방법은 앞으로 소개할 class table inheritance 와 concrete class inheritance에 비해 극단적인 장/단점을 갖게 된다. 아래의 장/단점에 대해서 생각해 보자

   

   

Single Table Inheritance의 장점

  1. 1개의 Table만이 생성되므로 데이터베이스에서는 1개의 테이블만 생각하면된다.
  2. 데이터를 조회 하기 위해서 Join이 발생하지 않는다.
  3. 상속구조에서 필드를 부모 자식간 리펙토링 해도 데이터베이스는 변경되지 않는다.

       

    단점

  4. Field들은 때때로 관련이 있기도 하고 관련이 없어지기도 한다. 이는 Table을 직접 이용할 때 혼란을 일으킨다.
  5. Column은 몇 개의 서브클래스에서만 사용되므로 데이터베이스 공간을 낭비하게 된다.
  6. single Table은 종국에는 점점 더 커질 것이며, 많은 인덱스가 생길 것이다. 이는 빈번한 lock으로 성능을 저하 시키게 된다.
  7. 한 개의 namespace 안에는 한 개의 field명 만을 사용할 수 있게 되어 다른 필드에 대해 같은 이름을 사용하면 안 된다. 조합된 클래스 이름과 subfix와 prefix를 적적히 사용하는 것으로 어려움을 피할 수 있다.

'아키텍처' 카테고리의 다른 글

Concrete Table Inheritance  (0) 2008/10/30
Class Table Inheritance  (0) 2008/10/27
Single Table Inheritance  (0) 2008/10/24
Embedded Mapping  (0) 2008/10/23
의존매핑 Dependent Mapping  (0) 2008/10/23
연관관계 테이블 매핑 (Association Table Mapping)  (0) 2008/10/23
top

posted at

2008/10/24 09:44


CONTENTS

닷넷프레임워크 딥 다이브 - .NET Framework Deep Dive
BLOG main image
닷넷 프레임워크 .NET FRAMEWORK, C# .NET 과 프레임워크 디자인, 아키텍처 설계, ASP.NET 개발 - 인간과 정보의 상호작용에 통찰력을 얻기 위한 블로그 입니다. -성공률이 100%인 프로젝트가 있다고? 거기에는 혁신이 0%일 것이다. ,Google CEO 에릭슈미트
RSS 2.0
공지
아카이브
최근 글 최근 댓글 최근 트랙백
카테고리 태그 구름사이트 링크