2011-07-03 8 views
0

클래스 테이블 상속을 통해 모델 상속 데이터베이스 모델에서 관계, 당신을 ... 상속 및 데이터베이스 설계

1)

가 속성 (이 subtipes, 더 subtipes에 대한 문자열을 부울 포함) 식별 각 레코드의 특정 하위 파이프?

2) 가능한 모든 하위 유형에 대한 설명이 들어있는 테이블의 외래 키로이 ID를 포함합니까?

3) 위의 어느 것도 필요하지 않으며 몇 차례에 걸쳐 서브 테이블의 "시행 착오"검색에 의존합니까?

답변

4

대부분의 경우 클래스 당 테이블 모델을 선호합니다. 여기에서 하나의 열은 discriminator 열 (1. 해결책)입니다. 많은 하위 유형이 필요하기 때문에 두 번째 테이블이 정말로 필요하다면 테이블을 몇 개의 테이블로 분리해야한다. 왜냐하면 많은 데이터가 반복되고 null이 될 것이라고 생각하기 때문이다.

이 당신이 공유 데이터와 마스터 테이블이있는 서브 클래스 모델 당 테이블도이며, 이러한 종류의 데이터로 작업하는 것은 제외하고, 단단하지만 서브 클래스 (데이터 completly 정규화)에 대한 자식 테이블이 아마도 사용하는 경우 NHibernate와 같은 ORM 도구. 이러한 경우에 서브 클래스의 수는 일반적으로 선행 알려져 있기 때문에

당신이, 당신이 해결하는 상황의 구체적인 예를 제공 할 수있다 (BillingDetails처럼 -> 크레딧 카드는 BankAccount가 등)

+0

도 하나있다 테이블 당 클래스 – Mark

+0

예, 정확한 콘크리트 클래스 당 테이블 –