2010-07-26 3 views
1

나는 데이터베이스 다이어그램의 두 부분에 문제가 있으며 귀하의 지침이 필요합니다. 데이터베이스 중 하나가 Employee에 관한 테이블이 많으며 다른 하나는 Customer에 관한 것입니다 ... ...! 두 테이블 (Product 및 OrderDetail)에 문제가 있습니다. Product 테이블에 ProductID, Name, Cost라는 3 개의 열이 있고 다른 테이블이이 열 (OrderDetailID, Cost, Quantity)을 가진 OrderDetail입니다.이 데이터베이스를 직접 만들지 않았습니다. 인터넷의 샘플 데이터베이스와 비슷하지만 OrderDetail 및 Product 테이블에있는이 두 비용에 대한 문제점이 있습니다. 이러한 비용의 차이점은 무엇입니까? 그들은 동일하거나 아닌가? 감사합니다데이터베이스에 대한 질문

EDITED : 죄송합니다. ordeDetail 테이블의 ID는 Product 테이블과 Order 테이블의 기본 키와 Product ID와 OrderID의 합성어이며 OrdeDeatil 테이블은 약한 개체입니다. (제품 ID, 주문 ID), 비용, 수량)

답변

2

나는 제품 테이블의 비용은 제품의 현재 가격이라고 생각합니다. 반면 주문 세부 정보 표의 비용은 특정 주문에 대해 제품에 대해 지불 된 가격입니다.

제품 가격이 올라갈 수도 있고 내려갈 수도 있고, 특정 주문에 대해 할인을받을 수도 있습니다. 주. 정보 테이블의 필드는이 정보를 저장합니다. 의미가 업데이트 된 질문에 또한 : UPDATE


. 이는 각 주문이 동일한 제품을 한 번만 나열 할 수 있음을 의미합니다. 주문 세부 정보 테이블에는 주문한 수량 (수량)이 저장되는 품목이 저장되어 있으며 비용은 한 품목에 대해 지불 한 가격입니다. 총계 (가격 * 수량) 일 수도 있지만 그런 테이블 구조에서는 일반적이지 않습니다.

+0

이 정확한지 제품 테이블의 비용 unitCost 및 OrderDetail의 비용 UnitCost * 수량? OrderDetail의 PK가 ProductID이고 OrderDeatil이 약한 엔티티이기 때.에 제품 테이블의 원가를 갱신 할 때 OrderDeatil의 원가가 자동으로 갱신됩니다. – user355002

+0

@ matin1234 : OrderDetail의 PK가 (OrderID 및 ProductID)의 복합 키가 아닌 것이 확실합니까? 왜냐하면 그것은 단지 ProductID 일 뿐이므로 주문은 다른 주문의 제품을 포함 할 수 없기 때문에 대량 주문 정보를 저장하지 않는 한 'OrderDetail (ProductID, Cost, Quantity)'테이블 구조는별로 유용하지 않습니다. 그러나이 경우,'OrderDetail'이라는 이름은 오해의 소지가 있습니다. –

+0

네,하지만이 두 테이블에 문제가 있었기 때문에 아무 말도하지 않았습니다. 편집 해 주셔서 감사합니다. – user355002

1

이 데이터베이스가 캡처 할 내용을 정확히 알지 못했지만 확실하게 말할 수는 없지만 대략 Product 테이블 Cost 열은 해당 제품의 단일 단위에 대한 비용이라고 예상 할 수 있습니다. OrderDetail 테이블 Cost 컬럼은 일정량의 '무언가'주문에 대한 비용으로, 가장 가능성있는 특정 수량의 제품입니다. OrderDetail 테이블을 Product 테이블에 연결하는 것이 아무것도 없다는 점을 제외하면 흥미로운 점을 유의하십시오.이 두 테이블이 연결될 예정이면 테이블에 연결된 테이블에 Foreign Key 테이블이 있어야합니다. 현재 OrderDetail 초를 Product 초와 일치시킬 방법이 없습니다.

+0

미안 나는 나의 지위를 편집했다!! OrderDeatil의 기본 키는 OrderDeatil이 약한 엔터티이기 때문에 Product ID 인 Product의 기본 키입니다. – user355002

관련 문제