Devs.tw 是讓工程師寫筆記、網誌的平台。歡迎您隨手紀錄、寫作,方便日後搜尋!
如題,應該是個常見問題。
下單之後,店家如果修改產品價錢、若是刪掉產品,顧客端的訂單資訊該怎麼顯示?
顧客端顯示 [商品不存在],簡單快速的一種作法,多檢查 product_id 對應到的資料在不在即可
簡單快速的一種作法
不過以上兩種作法都有個問題:如果是修改產品資訊,顧客端看到的資訊也會變。所以...
如此一來,這些資訊會跟 orders.product_id 對應過去的資料成為 redundant data
小小違反 single source of truth 原則。
所以一些現有系統是怎麼處理的呢?觀察訂單相關的資料表大概可略知一二
https://inchoo.net/wp-content/uploads/2010/09/MAGENTO_v1.3.2.4-Database_Diagram.pdf
觀察此圖,會看到:
# sales_order
- entity_id
- store_id
- customer_id
- subtotal
- ...
# sales_flat_order_item
- item_id
- order_id
- product_id
- name
- price
- ...
的確就是上述 3. 的作法。