费用延用设计
需求分析:费用延用设计。
比如有个客户A,他7月份购买了保险产品A,保险产品B.
产品A总价为:100元,子产品价格的总和。
产品B总价为:100元,子产品价格的总和。
7月账单:客户购买所有产品总和200元及明细,
8月账单沿用7月费用:客户购买所有产品总和200元及明细。
注意事项:
1、每个产品随时有可能调整价格,价格调整后同时客户产品价格应该变化。
比如A:
7月是200元,
8月沿用7月200元,
9月调整价格为300元,
10月沿用9月价格。
2、客户费用段是不允许用户手动修改。
现在我所想的表结构如下:
客户表:
cusid cusname
1 测试客户
费用段表:
fid cusid moneytotal beginTime stopTime
1 1 200 2013-07 null ---------------》如何为空,沿用
产品A明细表:
id fid proid money
1 1 1 20
2 1 2 80
产品B明细表:
id fid proid money
1 1 4 20
2 1 5 80
现在问题是:
1、我调产品A的价格要先去费用段表生成一条记录,然后把产品A,产品B的所有明细重新插入。一般一个客户会购买5种以上产品。
费用段表:
fid cusid moneytotal beginTime stopTime
1 1 200 2013-07 2013-08 终止时间就是产品生效时间的前一个月。
2 1 180 2013-09 null ---------------》如何为空,沿用
产品A明细表:
id fid proid money
1 1 1 20
2 1 2 80
3 2 1 20
3 2 1 60 ------>调整后的价格
产品B明细表:
id fid proid money
1 1 4 20
2 1 5 80
3 2 4 20 ---->重新对应fid(费用段id)
4 2 5 80
2、如果产品B的价格应该8月调,而我先调了产品A9月,这里就存在跨费用段了,现在应该怎么办?,这儿有个问题就是调每个产品价格先后顺序。
有没有更好的建表方式或设计思路?
------解决方案--------------------
例如
7月是200元,
8月沿用7月200元,
9月调整价格为300元
则表数据为
id begindate enddate money
-----------------------------------
1 2013/07/01 2013/08/31 200
1 2013/09/01 2099/12/31 300