2009-07-29 5 views
0

나는 견적 작성 도구를 사용하고 있습니다. 모든 고객 정보를 저장할 테이블이 있습니다. 그런 다음 customer_id 키를 공유하고 견적의 모든 세부 사항을 저장할 견적 테이블이 있습니다.견적 작성자 - SQL을 사용하는 가장 좋은 방법

견적 표에 인용 된 제품의 모든 세부 정보를 저장하고 싶습니다. 이제 장바구니를 사용하면 모든 제품 세부 정보와 상호 참조가있는 제품 테이블을 얻을 수 있습니다.하지만이 경우에는 견적을받을 제품이 거의 무한하고 대부분의 경우에만 견적이 산출되므로 정해진 양의 제품이 없습니다. 한 번에 그리고 다른 가격으로.

그래서 미래에 견적을 받으면 원래의 견적에서 모든 제품과 해당 상응하는 수량 및 가격을 알고 싶습니다.

지금 내가 할 수있는 유일한 방법은 생성 된 모든 견적에 대해 새 테이블을 만들고 고유 한 quote_id로 테이블 이름 접두사를 붙이는 것이지만 이것은 많은 테이블을 가지고 매우 지저분 할 수 있습니다. - 더 나은 방법을 생각하면 도움을주십시오.

감사합니다.

답변

0

제품 테이블을 상호 참조 할 수 있지만 변경 될 수있는 정보는 복사하십시오. 즉, 견적을 만들 때의 정보와 각 제품의 현재 데이터에 대한 링크가 모두 있음을 의미합니다.

QuoteProduct 테이블 (따옴표 QuoteProduct를 통해 제품과 많은 많은 관계를 가질 것이다) :

 
---------------   ------------------  --------------- 
| PRODUCT  | 1:many | QUOTEPRODUCT | many:1 | QUOTE  | 
| ProductId |--------<| QuoteId  |>-------| QuoteId  | 
| Price  |   | ProductId  |  | DateCreated | 
| Description |   | Price   |  | Description | 
---------------   | Description |  --------------- 
         ----------------- 

당신은 자신의 기본 키를 QuoteProduct 제공 할 수 있습니다 또는 당신이 QuoteId,이 제품 일련 만들 수 있습니다. 작은 따옴표에 같은 제품을 여러 번 넣고 가격을 달리하고 싶다면 아마 자신의 기본 키를 줄 필요가 있습니다.

0

새 테이블을 만들려면 quote_items이라고 부릅니다. 기본적으로이 표에는 모든 제품의 사본이 포함되어 있으며 가격은 이며 견적을 작성한 당시의 시간은입니다. 이 quote_items 테이블에는 외래 키로 된 견적 ID가 있습니다.

견적을 작성하려면 견적 테이블에 새 항목을 작성한 다음 견적의 견적 ID를 방금 작성한 quote_items 테이블에 견적의 모든 항목을 복사하십시오.