問題
倉庫反映公司系統庫存查詢報表中貨品檔案和系統貨品檔案查到的某條屬性不一致。
原因
系統庫存表,由存儲過程根據入庫出庫(配貨銷售)記錄更新。
庫存表、配貨表、銷售表等業務數據表設計時都有冗餘(開發講這樣設計出報表統計時更方便),除了貨品條碼,還記錄了貨品幾條屬性。
查看數據庫發現配貨表這部分屬性和貨品檔案表不符,後來瞭解配貨時excel導入系統的部分屬性不符,系統只會驗證貨品條碼是否存在貨品檔案中,不會驗證貨品檔案的那條屬性,所以配貨表記錄了錯誤的貨品該條屬性,庫存表按存儲過程也獲取了錯誤的該條屬性。
解決辦法
1.在數據存中修正錯誤屬性:
晚上沒人用系統時備份數據庫,更新 幾個業務數據存的該錯誤屬性。
語法參考
update supplylist --需更新檔案的業務數據表
set supplylist.model3=mmf.model3 from mmf,supplylist where supplylist.matid=mmf.matid --model3爲需修正的錯誤屬性,mmf爲貨品檔案表
2.通知配貨時導入excel時變更格式,按正確的格式導入。測試只導入條碼時,其他屬性會自動從貨品檔案獲取。
總結
數據庫設計儘量還是符合第三範式吧,關聯多個表出報表統計真不費什麼事,冗餘只能使程序處理控制容易出問題,增加了硬件負荷,真不推薦出問題了在sql後臺處理數據。