假设,如果我使用的系统可以跨多个表(orders、order_items、product)跟踪产品和订单信息
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”字段,并在编辑/删除时将显示设置为 0 并将编辑后的产品添加为新行吗?我应该在 order_details 中复制名称、描述和价格吗?