数据库设计问题,请教大家数据库表accountInfo字段如下:
帐号,开户日期,币别,上年底余额,一月底余额,二月底余额…七月底余额,八月底余额…十二月底余额等等。现在要做一个周报表,比如现在是7月份,7月5日是第一周,7月12日是第二周,19日是第三周,26日是第四周,(31日的余额存放在七月底余额中)。当在12---19日的时候所生成的周报表应该为:
帐号,上年底余额,6月底余额,(7月第一周)7月5日余额,(7月第二周)7月12日余额,比上周(余额差),比上月底(余额差),比上年底(余额差)。由于两系统不能对接,数据只能从A系统导出数据到B系统(B系统要实现以上功能)。现在的问题是:accountInfo表如何设计,以便增加可以导入每周数据,而且要有对应的时间,比如说20090705。假如说星期一放假的话,只能是星期二从A系统导出数据,也就是说数据导入进B系统的日期不固定,不一定是每月的那一天。基本上一周最多四五次(一般为三次,最后一次导入在月底余额)。
我想在accountInfo表中增加以下几个字段:week_1,amount_1,week_2,amount_2,week_3,amount_3,week_4,amount_4,week_5,amount_5。共为5代,根据需要来用,优先用12345代。
(以上字段存放数据的周期为当月,到了下月存放的就是下月的数据)week_1里面存放导入数据的日期(20090705),amout_1里面存放帐号在7月5日所对应的余额,在7月13日时导入12日的日期和余额在week_2和amount_2里面,后面的数据就根据日期选择存放哪个字段里面。有个问题,就是根据日期比较时,比如现在有12日的余额,而数据库里只有5日余额,当前日期大于5日,就要存放在week_2和amount_2里面,在不知道的情况下怎么判断存放在哪个字段里面呢?好像不好判断,比如到了8月份的时候,7月5日的数据肯定还在数据库,这个时候只要根据当前时间找到最早的日期(即7月5日)update替换掉原有数据即可,但是week_1和amount_1又不对应,知道原有数据是7月5日的时候,也不知道7月5日是存在week几里面的,当前日期可以update7月5日的日期,当前数据就不知道要放在amount几里面了。怎么都感觉这样设计不合理,而且很别扭,可又不知道该怎么设计才行,急盼高手给予解答,希望能尽量详细点,谢谢谢谢!!!