现在有个客户需求是这样的,
用户在网站可以,预定购买商品。
用户可以修改设置
每7天,买一次,金额是多少
也可以设置每8天,买一次,金额是多少
还可以设置9天,买一次,金额是多少
还可以设置10天,买一次。金额是多少
同时用户可以设置,是否开启,预约购买(定时购买)。
这种需求怎么实现的比较好。我想了好几天,终于有点想明白了。
设置一个->预约表
有,用户id,预约金额(冗余),预约日期,状态
再弄一个->预约配置表
用户id,预约天数,预约金额,预约是否开启
一共2张表。
再后台生成,根据用户设置的预约配置,生成具体的预约单,放到 预约表去。
例如:用户A,id=1000,预约间隔天数:10天
用户id 预约金额 预约日期 状态
1000 2000 2019-4-19 8:05 待执行
1000 2000 2019-4-29 8:05 待执行
1000 2000 2019-5-09 8:05 待执行
1000 2000 2019-5-19 8:05 待执行
1000 2000 2019-5-29 8:05 待执行
1000 2000 2019-6-09 8:05 待执行
1000 2000 2019-6-19 8:05 待执行
这样每个用户生成7个预约单,后台监控,是否需要补单。如果需要补单,就补上。
php轮询,检查预约日期是否超过了当前时间,如果超过了就执行买入操作。
这样设计,还是还觉得不错,现在想想,还有是问题,一个用户就要7天的数据,占用7条数据资源。如果有20万用户,
光这个都要生成,140万个订单, 累计起来数据量很快几百万条,不理想!
有没有一种巧妙的设计,请大神指点一下把!
怎样巧妙的设计出,不用定时器轮询,也不用每个用户都插入7天的数据。
哪位大神,开下脑洞,帮我看看,拜托了。