进销存中的主细表数据同步存储及货物均价的算法
最近要做个进销存,但有些技术细节感觉不是很明朗,特开贴请教一下。
一、主细表表数据同步存储的方案
如入库单,包括主表和细表,主表保存单据抬头信息:单据ID、供应商ID、经手人、票号等;细表保存入库货物的明细信息:主表ID、序号、货号、单价、数量、订单序号等。
我想要探讨的是主细表中的一对多关系的“主表单据ID”的取得,我考虑了以下几种方案:
1、自增。此种为比较简单的方案,可以利用简单的事务处理即可同时向主细表保存数据,缺点是不明朗,且不适用于数据合并;
2、自定义。如CG-2001-01-02-0001,此种类型也比较好取得,但缺点是你得必须从主表中取得后几位的最大值并加一,这有可能导致速度慢,也不利于数据合并
3、用GUID,优点是利于数据合并,但速度会慢许多,且不明朗,看不出什么来
二、库存商品的进货均价的计算
问一下各位做过进销存的同仁们,比如如果采用移动平均,那么计算当前货物的采购均价的代码(函数)是放在哪个按钮下执行的,比如:是否当用户点击采购进货单据中的“保存”按钮,首先分别向主细表写入单据数据,然后按用户选定的均价计算方式计算细表中各个货物的采购均价?
[解决办法]
1。主细表数据同步存储方法我是用第二种,用一个事务保证存储同步就可以了。
2。进货均价的算法没接触过,我一般都是采用进货单+原价+售价的方式记录
[解决办法]
同步我用第二种方法,均价我用全月平均,不在保存单据时处理,只在月结时处理,因为单据时常会发生更改,这就使逻辑工作过多,容易导至单据数据与帐上不同步;全月平均的好处是,可以先开领料,再补购入手续;即是开单的流程相对松散自由;
[解决办法]
建议去看一些成熟的软件,看看它们的数据结构。比如:用友、金蝶...
[解决办法]
利用GUID还是解决分布式系统的好方案,在多层分布系统中,多个服务器,多个数据库.
如用自动编号,则当你需要汇总数据的时候,会发现麻烦来了,主键重复,系统崩溃。
GUID不错,不过开发时调试会遇到些麻烦.主键数据数据需要复制粘贴,而不能直接输入了调试。