2017-01-20 71 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表中。