困惑多年,有设计过库存管理的同学看过来
时间:2011-11-21
来源:互联网
过去:
结构:建立两个表 一个是库存信息表,一个是库操作表
库存信息表记录了库存数,存放位置等信息,操作记录表记录操作
每次入库,出库,都写一条操作记录进操作记录表,同时再更改库存表的数据,库存查询的时候从库存表里直接提取
结果:这样库存查询很方便,都是实时的,但是修改的时候要修改两个表,容易出现修改不同步的情况,后来财务经常会向我要某一天的时点库存,这个我很难还原回去,财务又要我每月结账,提供期初,期末,等信息,这方面可以通过运算得到,但是数以十万记得记录,运算时间十分长。
现在:
现在升级了,我想直接取消库存表,只做一个库存记录表,库存信息用视图表示,
create table stor (ID,Code,操作类型,数量 ,单价 ,存放位置)
对于数量,入库就是正数,出库就是负数,将来库存用sum(数量) group by code 就能运算
或者
create table stor (ID,Code,操作类型,入库数量 ,出库数量,操作单价 ,库存位置)
入库数量,出库数量都写正数 ,将来库存用 SUM(入库数量)-SUM(出库数量) group by code 进行运算
以上的设计思路,避免了修改信息的时候出现不同步现象,想取指定日期内的库存数据直接用时间进行筛选,库存结账的时候只需取出月初或月末数据进行备份,这些优点比较明显,但是查询库存时的效率可能会比较低,尤其是数据越来越多的情况下
第一个问题:请问大家做过的类似系统,或者用友金蝶等系统的表结构是怎样的呢
第二个问题,如果应该改成,上面我提到的结构,请问上面两种情况哪种比较好
作者: cs1918 发布时间: 2011-11-21
2、金蝶都是月结出来的结果,直接用结果。
3、第一种唯一的问题是更新不同步,LZ可以参考事务处理的方法,将同步问题解决。
作者: OrchidCat 发布时间: 2011-11-21
我觉得还是第一种合理些。
第二种如果数据量大,并发用户多,效率很低的.
作者: xuam 发布时间: 2011-11-21
而且,你的库存记录表怎么没有时间字段,怎么计算时点库存?
好的方法是,在你原来的基础上,增加月结表,记录每月底的库存,财务的要求就可以满足了,计算量也不会太大
作者: Haiwer 发布时间: 2011-11-21
如果没有实时库存表,输入出库记录的时候怎么校验输入的数据是否正确?每次需要获取库存都重新计算?
而且,你的库存记录表怎么没有时间字段,怎么计算时点库存?
好的方法是,在你原来的基础上,增加月结表,记录每月底的库存,财务的要求就可以满足了,计算量也不会太大
一看就是搞过的。
作者: fredrickhu 发布时间: 2011-11-21
如果没有实时库存表,输入出库记录的时候怎么校验输入的数据是否正确?每次需要获取库存都重新计算?
而且,你的库存记录表怎么没有时间字段,怎么计算时点库存?
好的方法是,在你原来的基础上,增加月结表,记录每月底的库存,财务的要求就可以满足了,计算量也不会太大
时间字段是有的,我简写的
作者: cs1918 发布时间: 2011-11-21
引用 3 楼 haiwer 的回复:
如果没有实时库存表,输入出库记录的时候怎么校验输入的数据是否正确?每次需要获取库存都重新计算?
而且,你的库存记录表怎么没有时间字段,怎么计算时点库存?
好的方法是,在你原来的基础上,增加月结表,记录每月底的库存,财务的要求就可以满足了,计算量也不会太大
一看就是搞过的。
支持#3,#4
果然都是搞过的
作者: dovei 发布时间: 2011-11-21
如果没有实时库存表,输入出库记录的时候怎么校验输入的数据是否正确?每次需要获取库存都重新计算?
而且,你的库存记录表怎么没有时间字段,怎么计算时点库存?
好的方法是,在你原来的基础上,增加月结表,记录每月底的库存,财务的要求就可以满足了,计算量也不会太大
这个最好还是看数据量的多少,如果数量量比较大的话,可以再考虑增加日结表,月结表,这样等到数据查询时,就比较方便。
作者: smilysoft 发布时间: 2011-11-21
作者: fstao 发布时间: 2011-11-21
操作表是必要的,不然修改很麻烦,每个操作表维护要单独记录,通过类似记账的功能更新库存表。
月末全部操作完成后,执行月结操作,余额结转到下月即可。
作者: xptking 发布时间: 2011-11-21
为什么操作表和库存表会不同步?应该不是设计的问题而是操作的问题吧?
操作表是必要的,不然修改很麻烦,每个操作表维护要单独记录,通过类似记账的功能更新库存表。
月末全部操作完成后,执行月结操作,余额结转到下月即可。
有时候客户的管理员,在对不上数据的时候甚至会直接修改库存表,这样数据库绝对就不准了,还有我们开发程序的时候会相应的开发删除库操作记录,修改库操作记录,等等一系列程序,开发成本加大
但是如果没有实时库存表,这些程序的开发成本大幅度降低
作者: cs1918 发布时间: 2011-11-21
以前我一直都用库存表的,是放置库存的数据里面的,这样的优点是可以提高查询速度,但是会经常出现单据明细账与库存账不一致,原因就是在单据审核写入库存里,会出现掉数据,不过,用事务一般就可以解决这个问题,但是还是有很大局限性,比如上个月还没有结帐,这个月是不审核记库存的,这个是很麻烦的事情。后来改为单据统计查询,这个解决很多局限性、数据不一至的问题了,但是就会有速度减慢了,所以只能通过优化存储未过程来……
哥们你说的太对了,我就是这个情况,跟你一样
作者: cs1918 发布时间: 2011-11-21
作者: wilmer 发布时间: 2011-11-21
作者: szstephenzhou 发布时间: 2011-11-21
作者: luckyrandom 发布时间: 2011-11-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28