가설, 나는 제품과 여러 테이블에서 주문 정보 (주문, order_items, 제품)유지하기 위해 데이터의 무결성
orders
id INT(11)
shipping_name VARCHAR(255)
shipping_street VARCHAR(255)
shipping_city VARCHAR(255)
[etc]
order_details
id INT(11)
order_id INT(11)
product_id INT(11)
products
id INT(11)
name VARCHAR(255)
description VARCHAR(255)
price DECIMAL(8,2)
구조는 order
여러가 있습니다 매우 간단 추적하는 시스템 인 경우 order_items
, order_items
은 하나가 product
입니다.
누군가가 제품을 편집 할 때 이러한 편집은 이전 주문의 데이터를 수정한다는 점에서 문제가 있습니다. 직원이 나중에 돌아가서 해당 정보를 나중에보아야하는 경우 주문이 접수 된 시점에 고객이받은 것과 동일한 정보가 제공되지 않을 수 있습니다.
모범 사례는 무엇입니까? 'display_item'필드를 products 테이블에 추가하고 edit/delete 세트 표시를 0으로 설정하고 편집 된 제품을 새 행으로 추가해야합니까? 이름, 설명 및 가격을 order_details에 복제해야합니까?
[이 게시물을보십시오 (http://stackoverflow.com/a/11930467/533120). –