2017-11-13 1 views
0

이것은 장바구니를 모델링 한 방법입니다. 주문이 완료된 후 삭제되는 "임시"카트가 제품 테이블에 있습니다. 그리고 CompleteOrders 목록에는 사용자의 각 주문에 대한 데이터가 들어 있습니다. 제품의 가격이나 이름을 수정할 때 CompleteOrders 목록에서도 변경됩니다. 이것을 피할 수있는 방법이 있습니까? 내 접근FK 테이블의 변경을 피하십시오. 장고 모델 1.11

class Product(models.Model): 
    name = models.CharField(max_length=30) 
    price = models.IntegerField() 

class Cart(models.Model): 
    product = models.ForeignKey(Product) 

class CompleteOrders(models.Model): 
    product = models.ForeignKey(Product) 

는 FK를 사용하는 대신 CompleteOrder에서 제품의 정보를 저장하는 데했지만, 난 바로 그 최적 보지 않았다.

미리 감사드립니다.

답변

0

외래 키는 다른 테이블을 참조하며 항상 현재 데이터를 표시합니다. 너는 이것을 피할 수 없다. 주문 완료 시점에서 제품 데이터를 저장하는 것 외에는 다른 방법이 없습니다.

일반적으로 이러한 정보를 저장하기 위해 JSON 데이터 유형을 사용합니다.