我有这么一个需求:要求记录用户扣量的记录,根据用户使用情况来扣量,用多少扣多少,没有特别的情况
建个表:shiyong
为了方便查看,这里我只拿一个用户a来举例
用户 | 扣量 | 时间 |
a | 0.2 | 2014-01-12 10:41:09 |
a | 0.1 | 2014-01-12 10:41:12 |
a | 0.3 | 2014-01-12 12:41:12 |
a | 0.1 | 2014-01-13 22:41:12 |
建个表:liwu
还有一个表,专门记赠送A的费用记录,但是赠送的记录有这么一条规则“只能在使用期限内有效”,如果超过了时间则无效
有效时间:5,表示5天
用户 | 收到 | 时间 | 有效时间 |
a | 20 | 2014-01-12 10:41:09 | 5 |
a | 5 | 2014-02-20 10:41:09 | 30 |
那么,这里就有这么几个情况:
提问,上诉最后一种情况,该怎么处理呢?一条一条的遍历吗?
上面只举了一个用户一年的使用量,如果有N个用户,2、3年的记录,那效率不是相当低下?
楼主标题是问建表,后面的问题好像是问算法了哦。算法方面的话建议,将赠送表按时间建立线段树(有个隐患,当两个赠送时间有重叠的时候,拆分为3个赠送方便处理 ),再将使用量投入相应节点计算总和,最后遍历树就知道最终结果了。算法复杂度:O(n) = N*log(N) 大概这样吧。用存储过程效率好一点。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。