我准备用SQL2000开发一套进销存,在分析到历史数据如何保存时,不知用何种方法了,请大家帮忙出出主意。
    具体问题是:这套系统要有“每月结转”,那么在12月份时就要有“年度结转”,这样的话年复一年总存在一个库中SQLSERVER可以吗,我觉得会越来越慢的,大家有没有做商品软件关于这方面的经验,多谢了!!!! 
问题解决我一定把分,分给大家,再次感谢!!

解决方案 »

  1.   

    嗯, 有滴哇。浪潮财务进销存软件的做法很好,可以借鉴,‘月结’就可以用某个表某个值按用户设定的会计周期来标识一下,做了月结写入个标志就行。 年结呢,就把今年的所有表(数据库当年内的所有表,加上个年份来存放,比如表部门字典 BMZD,年结后就处理为复制一份到表BMZD2002,以后查询时,要查哪一年,就在指定的表名和相关联的表名后加个年份),这个方法可以完整地保存整年的数据,可以随时按需得到年度的备份数据。  做好上面的换表名存放历史数据后, 当年数据(也就是当前未加年份后缀的表,全部可以清空,或者让用户在原数据基础上修改,但单据数据等一定要清空,就形成了新的一年表结构,因为年初又是空表了,数据处理速度也会变快了,不会有沉积)以上是我做N年软件维护与服务发现别人的处理经验, 可以借鉴的。
      

  2.   

    好象我上面写的,乱得我自己都看不懂,写得太乱了,举个小例吧:当前年度:2003
    有4个表, bmzd(部门字典),dz(单据信息),bb(报表信息),config(系统表,该表不年结,只记录)月结时, 向config里相应年份,月份的月结字段写入月结标志。
    年结时, 向config里写入已年结年份,同时修改当前年度年份为2004;把表bmzd复制一份到 bmzd2003;把表dz复制到dz2003,同时清空dz里的所有数据;把bb复制到bb2003,并清空bb里的所有数据。经以上一处理,当前各方面就可以做到:查询:
    当要查询以往年度数据时,就 "select XXX from dwzd "& UserYear & " where XXX"
    其中UserYear为用户指定的查询年份,如为今年,可以是""空字串,不会影响语句。权限:
    可对某个用户按年设定数据查询权限。该做帐的就只能做帐,不许查询往年数据。备份:
    数据即可以灵活按年度来备份,也可以用数据库全局备份。程序优化:
    因厉史数据是以异表存放, 不会造成表数据的沉积,所以不会影响程序操作数据库处理速度。