【发布时间】:2013-06-19 14:49:42
【问题描述】:
我正在为电子商务应用程序设计一个架构,其中我将有 3 个表,即订单、产品、客户。
那么我们是否应该直接将 customer_id 和 product_id 存储在 Orders 表中。
对此的限制是当产品或客户更新其属性(即产品价格或客户名称)时,订单表不会反映它们。
例如:客户以 10 美元购买了产品,但后来产品价格更新为 20 美元。所以现在当我们通过产品 ID 引用此订单时,我们会得到结果,因为它是以 20 美元购买的,而不是10 美元。
解决方案 1:
一种解决方案是每当发生更新时在 products 表中插入一个新行,并对该产品执行软删除,以便可以从 orders 表中引用它。
解决方案 2:
将大部分详细信息存储在产品和客户详细信息中的订单表中。
解决方案 3:
只要这些表有更新,就创建一个包含客户和产品的临时表。
我非常愿意接受任何其他建议。
【问题讨论】:
标签: mysql e-commerce database-schema