2012-05-21 3 views
0

테이블 디자인에 의문이 있습니다.데이터베이스 테이블 디자인 문제

는 첫 번째 테이블은 products_mast는 두 번째 테이블이 products_det라고

CONTRACTS_ID (PK), 
AGREEMENT_NO, 
SUPPLIER_CODE, 
START_DATE, 
END_DATE 
PROD_EXTENSION_NO 

은 위의 표는 CONTRACTS_ID와 연결되어

HIRING_ID (PK), 
CONTRACTS_ID(FK), 
PRODUCT_CODE, 
RATE 

을 포함 포함했다. Start DatesEnd Dates은 두 번째 표에 한 테이블에 있으며 제품 rates입니다. 세 번째 테이블 TRANSACTIONS에서

TRANS_ID, 
TRANS_REF_NO, 
HIRING_ID FK (products_det), 
REMARKS 

하나의 문제는 일반적으로 agreement_no가 확장 계약을위한 새로운 제품 요율과 기간을 연장받을 수 있습니다 포함되어 있습니다. 따라서 products_mast 및 products_det에 해당 세부 정보를 추가합니다 (확장명은 002입니다). HIRING_ID가 새 확장으로 증가하기 때문에 TRANSACTIONS에서 HIRING_ID와 products_det을 연결하는 경우 어떻게 정확하게 요금을 참조 할 수 있습니까? 이 문제를 어떻게 해결할 수 있습니까?

답변

1

나는 당신이 제안한 것과 정확히 일치하는지 확신하지 못합니다. 연장 002 (신규 확장)의 가치가 없습니다. 그러나 계약 당 거래를 고유하게 식별하는 경우라면, 테이블에 FK를 추가하는 것은 어떻습니까? 이를 products_mast 테이블의 AGREEMENT_NO 필드에 다시 연결하는 트랜잭션?

+0

나는 매 달 제품 요율을 계산하므로 그 값이 내가 start_date와 end_date입니다. 따라서 2011 년 3 월의 요율을 계산할 경우 hiring_id와 관련된 product_det에서 요율을받습니다. 따라서 확장이 발생하면 어떻게 Transactions 테이블에 FK를 추가 할 수 있습니까? 각 확장에 대해 요금이 있습니다. 그럼 거래 테이블에서 요율을 확인하는 가장 좋은 방법은 무엇입니까? – user75ponic

+0

제품 당 월별 요금을 계산하는 경우 요금을 사용하여 제품 세부 정보 테이블로 날짜를 옮기는 것이 좋습니다. 그러면 기간 당 부품 당 요금에 대한 거래 테이블에 대한 고유 링크가 허용되어야합니까? –

+1

테이블 구조는 같을 수 은'products_mast 불리는 첫 번째 테이블에 포함 CONTRACTS_ID (PK) PRODUCT_CODE (PK) AGREEMENT_NO, 번째 테이블이라고 products_det가 HIRING_ID (PK 결합) PROD_EXTENSION_NO를 (포함 SUPPLIER_CODE PK 결합) CONTRACTS_ID (FK) (products_mast) PRODUCT_CODE (FK) (products_mast) START_DATE, END_DATE 세 번째 테이블에서 TRANSACT RATE 이온이 포함 TRANS_ID (PK), TRANS_REF_NO, HIRING_ID FK (products_det), PROD_EXTENSION_NO FK (products_det) REMARKS' 더 명확 만들기위한 –

관련 문제