주문 테이블에는 제품 ID와 수량이 저장되어 있습니다.주문 후 제품 저장 - 주문 후 삭제
그러나 제품을 사이트에서 제거해야 주문의 데이터를 가져올 때 주문과 제품 (제품이 더 이상 존재하지 않음) 간에는 관계가 없습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 주문과 함께 제품 이름 등을 저장해야합니까?
주문 테이블에는 제품 ID와 수량이 저장되어 있습니다.주문 후 제품 저장 - 주문 후 삭제
그러나 제품을 사이트에서 제거해야 주문의 데이터를 가져올 때 주문과 제품 (제품이 더 이상 존재하지 않음) 간에는 관계가 없습니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 주문과 함께 제품 이름 등을 저장해야합니까?
처음에는 제품을 열심히 삭제하지 않는 것이 좋습니다.
bool
을 제품 테이블 deleted
에 추가하여 소프트 삭제할 수 있으며 제품을 삭제할 때 true
에 넣으십시오. 이렇게하면 오래된 제품, 삭제 된 제품에 대한 참조를 유지할 수 있습니다.
WHERE deleted = false
을 포함하도록 SELECT 쿼리를 변경해야합니다. 따라서 삭제되지 않은 제품 만 얻을 수 있습니다.
실수로 삭제하고 싶지 않은 제품을 삭제 한 경우에도 유용합니다. 당신은 쉽게 다시 변경할 수 있기 때문에.
일부 시스템 (*)은 귀하의 질문에 명시된대로이 문제를 정확하게 처리합니다 - 제품 이름 (및 기타 관련 데이터)을 주문서에 복사하여 주문서에 모든 정보가 포함되어 있어도 제품이 h 제됩니다.
(*) 예를 들어, OpenCart와 Zen Cart는 모두이 작업을 수행합니다.
해당 제품에 옵션이 있다면 무엇을 제안 하시겠습니까? –
@RyanHipkiss 옵션으로 무엇을 의미합니까? 당신이 다른 테이블을 참조하는 것을 의미한다면, 나의 제안은 그대로 유지됩니다. 다른 테이블의 제품을 언급하는 한 실제로 삭제하지 않는 것이 가장 좋습니다. 너 혼자 생각해야 해. "삭제 된 제품 데이터가 필요합니까?" 대답이 예이면 소프트 삭제. 확실하지 않으면 소프트 삭제하십시오. 데이터를 다시 필요로하지 않을 것이라는 확신이들 경우에만 삭제하십시오. – Shogunivar
@RyanHipkiss 대답이 질문에 도움이된다면 대답을 수락 할 수 있습니까? – Shogunivar