26

제 질문은 관계형 데이터베이스 시스템의 상속 모델링에 관한 것입니다. 정규 데이터 모델을 가지고 있으며 제품 테이블에서 특정 속성을 상속하는 제품 가격 책정과 관련된 몇 가지 필드가 있으며 MySQL 관계형 데이터베이스에서이 상속을 모델링하고 싶습니다.관계형 데이터베이스에서 상속 모델링을 수행하는 방법?

"어떻게 관계형 모델을 상속 모델링 할 수 있습니까? 데이터베이스? "

감사합니다. 몇 가지 아이디어에 대한이 기사에서

답변

27

마틴 파울러 (Martin Fowler)는 그의 책 "엔터프라이즈 응용 프로그램 아키텍처 패턴 (Patterns of Enterprise Application Architecture)"에서 광범위하게 설명합니다. 이 책을 가져 오기 및 조사 : 당신에게 아이디어를 줄 것이다

  1. Single Table Inheritance
  2. Class Table Inheritance
  3. Concrete Table Inheritance

웹 싸이트. inheritance mappers 섹션을 읽어 볼 수도 있습니다. 각기 다른 접근 방식은 장단점이 있으므로 현명하게 선택하십시오.

+18

이 대답은 완전히 실현 된 책을 구입하는 것과 관련이 있습니다. 비슷한 웹 리소스를 추가 할 수있는 기회가 있습니까? –

3

관계형 데이터베이스 (따라서하고, 상속) 객체로 취급하지 않습니다 - 그들은 관계를 다룬다. 당신이 정말로 묻고있는 것은 객체 구조를 데이터베이스에 매핑하는 방법입니다. 그 대답은 "당신의 ORM 레이어에 달렸습니다"입니다.

자세한 내용은 Mapping Objects to Relational Databases: O/R Mapping In Detail 문서를 참조하십시오. 사용중인 소프트웨어 스택을 알려 주시면보다 정확한 답을 얻으실 수 있습니다.

+1

이것은 현학적으로 들릴지 모르겠지만 관계형 데이터베이스는 관계를 다루는 것이 정확하다고 생각하지 않지만 여기에 정의 된 관계를 다루기 때문에 관계형 데이터베이스는 관계형 데이터베이스를 호출한다고합니다. http://en.wikipedia.org/ wiki/Relation_ (데이터베이스) –

+1

@Ralph : Wiki는 농양입니다. confabulators는 인증이 없습니다. 관계형 데이터베이스는 객체가 아닌 엔티티 및 관계를 처리합니다. RDb가 진정한 관계형이면 객체를 쉽게 매핑 할 수 있습니다. 그렇지 않은 경우가 아닙니다. – PerformanceDBA

+3

ORM없이 테이블 상속을 할 수 있습니다 –

2

그냥 책을 읽는 대신에 일부 웹 기사를보고 싶은 경우에, 당신은에 인터넷 검색을하여 좋은 기사를 찾을 수 있습니다

Generalization Specialization Relational Modeling 

겐 - 투기 패턴이 같은 지상의 많은 커버를 그 상속은 OOP 환경에서 수행됩니다.

당신이

Generalization Specialization Object Modeling 

에 구글 경우 명시 적으로 상속을 언급 대부분의 기사, 완전히 새로운 배치를 얻을 수 있습니다.

info 태그 아래의 태그에 요약 된 설계 기법이 있습니다. 이렇게하면 "확장"이라는 단어의 이상한 사용을 허용하는 경우 하위 클래스 테이블을 사용하여 클래스 테이블을 "확장"할 수 있습니다. 일부 작업이 포함되지만 가치가 있습니다.

+0

이것은 이상화 된 S.O.의 답변이 아닙니다. 감각, 나는 그것이 매우 유용하다는 것을 알았다. – derekv

1

"데이터베이스 관리의 실질적인 문제"6 장은 아마도 당신에게 흥미로운 읽을 거리 일 것입니다.

다른 모든 챕터와 마찬가지지만, 아마도 귀하의 질문과 직접적인 관련이 없습니다.

관련 문제