태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

Single Table Inheritance

아키텍처 2008/10/24 09:44

클래스의 상속 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

현재글 : Single Table Inheritance posted By - 반더빌트 2008/10/24 09:44
Trackback 0 : Comment 0

Trackback Address :: http://smack.kr/trackback/262 관련글 쓰기


[생각을 적어 주세요~ 댓글은 작은 인연의 씨앗입니다.]

◀ PREV : [1] : ... [72] : [73] : [74] : [75] : [76] : [77] : [78] : [79] : [80] : ... [294] : NEXT ▶