2017-01-20 37 views
0

我不知道它用于定义这个问题的术语是什么,让我在这里用一个简单的例子来解释。我有一个productsorders表,其中ordersordered_products表有一对多的关系。数据库设计问题:历史一致性

看到表: -

products(id, sku, name, summary, price); 

orders(id, code, customer_name, customer_address); 
ordered_products(id, order_id, product_id, quantity); 

一旦订单生成,订购的产品都在ordered_products表中列出。然后,应用程序在products表中采用价格参考生成发票。发生问题!当订购的产品被编辑时。例如,如果在products表上编辑名称或价格,则会影响订单,从而在实际订单中产生不匹配。这里有什么解决方案?我需要复制ordered_items中的值,而不是在这里使用外键引用吗?

+0

你可能想看看:http://stackoverflow.com/a/11930467/533120 –

回答

1

订单“正常”按协定价格放置,因此在下订单后更改产品价格意味着您必须将订购的价格存储在ordere_products表中。