2016-08-09 3 views
0

데이터베이스를 사용하여 작업을하고 있지만 처음부터 처음 설계하는 것입니다. 사과가 어딘가에 이미 대답이 있다면, 나는 만족스러운 것을 찾지 못했습니다.데이터베이스에 테이블을 가장 잘 연결하는 방법

목적은 제품 조립 중에 품질 테스트 데이터를 저장하는 것입니다. 다양한 수의 테스트가 각 유닛에서 실행될 수 있으므로 테스트 및 빌드를위한 다 대일 관련 테이블이 있습니다. 추가

enter image description here

다음 표는 빌드의 부품 번호 (각 유닛은 수백 개의 부분으로 구성되어있다)의 목록입니다. 물리적 관점과 논리적 관점에서 보면 Builds 테이블과 관련이 있어야합니다. 그러나 고객은 실수가 확인되면 테스트간에 부품을 교환하기 때문에 테스트와 관련되어야한다고 말했습니다.

테스트가 다시 실행될 때마다 한두 개의 부품이 실제로 변경 될 때마다 수백 개의 부품을 복제하는 데 많은 공간이 낭비되는 것처럼 보입니다. 그러나 나는 더 좋은 방법을 생각할 수 없다. 어떤 아이디어?

미리 감사드립니다.

+0

빌드와 테스트 사이에 화살표를 역으로 놓을 것입니다. 많은 테스트, 하나의 빌드, 만약 내가 그것을 올바르게 읽습니다. –

+0

@WalterMitty 아마도 맞 겠지만 왜 설명 할 수 있겠습니까? –

+0

관습은 화살표 머리가 "많은 끝"이 아니라 "한쪽 끝"으로가는 것입니다. crowsfeet를 사용하면 관습은 crowsfoot가 많은 부분을 차지한다는 것입니다. –

답변

2

특히 부품이 아닌 빌드 자체에서 테스트를 실행하는 것처럼 들립니다. 따라서 마치 빌드에 버전이있는 것처럼 보이며, 각 파트는 파트가 변경 되었기 때문에 이전 버전과 다릅니다.

이는 파트 세트와 관련된 build_version 테이블이 필요하며 테스트의 대상이됨을 제안합니다.

많은 부품이 있지만 버전 중 일부만 변경되는 경우 build_version_part_changes 테이블에서 추가 된 부품 및 부품이 제거 된 부품과 build_version의 관계를 나타낼 수 있습니다.

따라서 테스트 실패가 발생하고 부품이 변경된 경우 관련된 부품 세트가 변경된 새 build_version 레코드가 생성됩니다. 새로운 build_version은 다른 테스트를 거친다.

+1

훌륭한 제안에 감사드립니다, David! 부품 이름과 합치는 대신 부품 세트와 테스트를 연관시키는 아이디어는 가장 큰 크기 축소를 직접 보여 주었고 왜 그렇게 생각할 수 없었는지 알지 못합니다. 더욱 더 줄이기 위해, 파트 세트와 build_version_part_changes 테이블이 현재 빌드 테이블과 연관되어있는 버전 관리 개념을 수정하려고합니다. 그런 다음 처리시 변경 사항을 검토하여 필요에 따라 특정 "버전"을 생성 할 수 있습니다. –