问题 

仓库反映公司系统库存查询报表中货品档案和系统货品档案查到的某条属性不一致。

 

原因

系统库存表,由存储过程根据入库出库(配货销售)记录更新。

库存表、配货表、销售表等业务数据表设计时都有冗余(开发讲这样设计出报表统计时更方便),除了货品条码,还记录了货品几条属性。

查看数据库发现配货表这部分属性和货品档案表不符,后来了解配货时excel导入系统的部分属性不符,系统只会验证货品条码是否存在货品档案中,不会验证货品档案的那条属性,所以配货表记录了错误的货品该条属性,库存表按存储过程也获取了错误的该条属性。

 

解决办法

1.在数据存中修正错误属性:

晚上没人用系统时备份数据库,更新 几个业务数据存的该错误属性。

语法参考

 

update supplylist   --需更新档案的业务数据表

set supplylist.model3=mmf.model3 from mmf,supplylist where supplylist.matid=mmf.matid   --model3为需修正的错误属性,mmf为货品档案表

2.通知配货时导入excel时变更格式,按正确的格式导入。测试只导入条码时,其他属性会自动从货品档案获取。

 

总结

数据库设计尽量还是符合第三范式吧,关联多个表出报表统计真不费什么事,冗余只能使程序处理控制容易出问题,增加了硬件负荷,真不推荐出问题了在sql后台处理数据。