給你個建議 只要是關聯式的設計 只要有關聯到的資料表就不能刪除
ex 訂單 購物車 會關聯到 產品 只要有產品被加到購物車 產品就不能刪除(但能異動 結帳時再去顯示異動的部份 名稱 或 金額)
後台部份建議你 要有詳細的操作記錄,由其是多權限系統後台(log是自保的好工具丫 雖然前期很麻煩),後續有任何問題誰什麼時候登入,做了什麼異動(可依據log做可逆操作 sql log)
資料寧願多存也不要誤刪~
商品A設定啟用 Enabled (布林值) 建立時是1,刪除後是0
看樣子完全搞錯…
使用者買了商品A之後建立了訂單,利用關聯性資料庫找到1後去資料表
product 引入該筆商品的資訊 (錯)
Ans: 使用者買了商品A之後建立了訂單,應該複製商品A的資訊到使用者的購買商品表中
通常是導引到商品已不存在的圖~
你去Pchome或雅虎購物時~以前商品被下架時~都是導引到商品已不存在~
如果是消費者要查訂單資料的話~以線上商店的作法~是拍圖存證~
所以訂單資料的購買紀錄都要完整存在~不能因為商品不存在就出現商品查不到@@..
當然沒登入會員是出現商品查不到@@..
基本的產品資料是不能刪除的
光是歷史報表就產不出來,而且稽核文件也會對不上
佔的空間不多,就放著吧,省得以後有麻煩
我的作法是有一個IsEnable欄位,值為0時就是假刪除,功能表顯示不出來,但報表則正常
帳號等也建議採用這作法
還有,任何表單都不宜直接對到這個表,試想,管理產品資料庫的人通常不會在刪除產品時,還細心的去檢查目前是否還有此產品的表單,如果直接關聯,所有與此產品對上的表單都會出錯。
我的經驗是複製一筆產品資料到表單內,不是直接關聯,這樣即使產品被刪除,表單也能正確顯示,只有在出貨時,但最好的作法是在SOP中建立產品上下架前的庫存預警,產品刪除要透過程式檢查目前關聯到的表單,而不是直接從資料庫指令刪除....會很慘