2012-06-18 4 views
0

ER 다이어그램을 테이블로 변환하는 데 문제가 있습니다. 요구에 따라 약한 엔티티와 삼원 관계에서 :ERD -> sql 변환

  • 납품 업체 공급 일정 수의 부품 프로젝트
  • 위한 프로젝트는 다른 공급자로부터 부품을 사용한다.
  • 다른 공급 업체의 동일한 종류의 부품이 다른 프로젝트에서 사용됩니다.
  • 는 공급 업체 및 공급 업체 가 찾아 도시의 이름이있다.
  • 부품의 이름, 색상 및 무게가 있습니다. projectNO, supplierName, 도시, 여기서 partName, 색상, 무게 :

ERD Diagram Image http://s9.postimage.org/gmhu6rltr/Untitled.jpg

내가 들어 공급하는 제 4 테이블을 만들 수 있습니까? 해당 테이블에 대한 PK를 구성하는 6 개의 속성?

답변

1

나는 ProjectSupplies 사이의 관계를 잘 생각하지 않습니다. 마찬가지로 SuppliesSupplierPart 사이의 관계는 모두 거꾸로입니다.

까마귀 발은 관계의 많은 부분을 차지합니다. Supplies은 여러분이 이야기하는 삼중 관계 테이블이어야합니다. 당신이 Project, SupplierPart에서 다음 키 열을 모두 자연 키를 사용하는 경우 PK 등 모두 각각의 테이블에 FK와 모두 함께으로 Supplies에 나타납니다.

그러나, 당신의 자연적인 키는 변경 될 수 있습니다 것들 (예를 들어, 공급 업체, 도시를 이동 부분은 색상이나 무게를 변경)처럼 보인다. 향후 업데이트 이상을 피하기 위해 서로 게이트 키를 사용하는 것이 좋습니다.

+0

공급 테이블 (PROJNO, suppName, 도시, 여기서 partName, 색상, 무게)이 테이블의 모든 속성은 PK를 구성! ok 공급자 ID 및 부품 ID는 어떻습니까? 프로젝트 (projNO {PK}, ...) 공급자 (ID {PK}, 이름, 도시) 부분 (ID {PK}, 이름, 색상, 무게) 프로젝트 번호 : (projNO, SuppID, PartID) 그리고 모든 att가 primiary key를 구성합니다. –

+0

@Programmingbuddy - 예, 이것이 일반적인 아이디어입니다. 서로 게이트 키는 교차 테이블을 깔끔하게 유지하고 외래 키를 방해하지 않으면 서 상위 테이블 열 중 일부를 편집 할 수있게합니다. –