나는 이미 답변을 알고 있지만 아직도 귀하의 의견을 듣고 싶습니다.상점 데이터베이스의 과거 데이터 유지 보수
나는 간단한 상점 데이터베이스를 만들고 있습니다. 제품 테이블과 주문 테이블이 있고이 두 제품 사이에 Order2Product라는 접합 테이블을 만들어 주문 내용을 저장했습니다.
이 작은 모델에서는 Order2Product 테이블에 레코드를 추가하고 각 레코드의 수량을 설정하여 주문을 저장할 수 있습니다.
그러나이 모델은 기록 데이터를 유지하지 않습니다. 예를 들어, 상점 주인이 제품 3의 가격을 변경하고 제품 3이 1 년 전에 주문한 순서대로 변경되면 해당 주문의 가격이 변경되므로, 예를 들어, 주문 후 안정적으로 인보이스를 인쇄 할 수 없습니다. 주문이 접수되었습니다.
제품 이름도 동일합니다. 상점 주인이 제품 '사탕 상자'의 이름을 'Jack Daniel 's gift box'로 바꾸기로 결정한 경우 이는 인보이스의 재 인쇄에 이상하게 보입니다.
내 의견으로는 제품 외래 키가있는 제품에 연결하는 대신 제품 테이블의 이름과 가격을 Order2Product 테이블로 복사하는 것입니다.
당신은 어떻게 생각하십니까? 데이타를 복제하는 것은 데이타베이스 디자인에서 나쁜 습관이기 때문에 다소 재미 있습니다. 다른 한편으로, 나는 이것이 배치 된 주문의 신뢰성있는 기록을 유지하기를 원한다면 다른 해결책이없는 경우라고 생각한다.
대안 버전은 제품 개정판을 사용하여 레코드를 변경할 때마다 새로운 제품 레코드를 저장하는 것입니다. 그러나이 모델은 사용자가 Access 데이터 시트를 통해 데이터에 직접 액세스 할 수있는 Ms Access를위한 것이므로 제품 레코드를 수정할 수 있습니다.
어쨌든 가격과 제품 이름과 세율을 복사 할 예정입니다. 명령이 내려 졌을 때의 상황을 반영하기 위해 청구서를 보내고 싶습니다. 감사. – Julius
제품 이름을 복사하지 않지만 귀하의 요지를 말합니다. 송장을 다시 인쇄 할 수있는 법적 요구 사항이 있습니다. 또한, 제품 기록은 주자가 될 수 있습니다. 내 자신의 응용 프로그램의 경우입니다. 물론 고객 레코드의 정보를 주문 헤더에 복사 할 수도 있습니다. 이유는 마찬가지입니다. –
아직 고객 정보를 생각조차하지 못했습니다. 좋은 지적. – Julius