2012-07-18 2 views
0

다음 db 테이블을위한 좋은 디자인을 따르고 있는지 궁금합니다.좋은 디자인 : 동일한 기본 키에 외래 키가있는 2 개의 테이블

테이블 :

  • Project_Proposal
  • Milestones_Proposal
  • Resources_Proposal
  • 프로젝트
  • Milestones_Project
  • Resources_Project

두 마일스톤 테이블의 열이 같고 두 리소스 테이블의 열이 같습니다.

내 질문은 내가

  1. 이 테이블의 데이터가 하나 프로젝트에 또는 속하는 경우 식별 할 수있는 열 "TYPE"을 만들기
  2. Resources_Project
  3. 로 Milestones_Project와
  4. 병합 Resources_Proposal을 Milestones_Proposal을 병합할지 여부입니다 프로젝트 제안
  5. "유형"값에 따라 Project_Proposal 또는 Project 테이블을 가리키는 중요 시점 및 자원에서 외래 키를 정의하십시오.

디자인은 다음과 같이 다음과 같다 :

  • Project_Proposal에게
  • 프로젝트
  • 연혁
  • 자원

많은 감사, 피터

+0

Project와 Project_Proposal의 차이점은 무엇입니까? –

답변

0

같은 필드를 가지고 있지만 외래 키를 통해 다른 테이블을 가리키고있어 하나의 필드로 병합 할 수 없습니다. 최종 결과는 한 필드 또는 다른 필드가 유형 필드를 기반으로 NULL이 아닌 값을 포함 할 수 있도록하는 CHECK입니다.

이 간단한 경우에 어느 것이 완벽합니다. 상속 구현을 위해 3 possible strategies에서 전략 # 1을 본질적으로 따르고 있습니다.

관련 문제