设备上安装的app应用,用户点击一次就会调用我们的接口,记录下信息:用户id,打开应用起始时间,结束时间,app名称等等。这些信息会生成log文件,log每一行就是上面记录的信息。这些数据要通过分析之后转存到DB里,为了以后可以在界面统计不同用户点击的次数:按小时、天、月、年。规则就是:如果是按小时,那么同一个用户一小时不管点击多少次都算做1次;如果是按天,一天内不管点击多少次也只算做1次,以此类推。
我要做的就是,分析log的信息,数据库存储应该把这些时间单位都考虑进去。DB就是最终数据,以后我如果想在页面按小时、(天、周、月、年)来统计,直接从表里取数据就可以了。
现在问题就是:我该用什么逻辑或者算法,来把log信息转换成我想要的DB信息呢?而且还要考虑按照时间来去除重复数据。
------解决思路----------------------
自定义一个类,包含用户点击信息。然后自定义排序,排序原则就是先按照年排,再按月。。。。
排好序后,扫描就可以了年很容易,直接去重计数就可以了,月要求年相同,再去重。。。其余类似,相对比较麻烦。
另外一个思路是把年月日映射成一个英文字母,然后构造字典树,字典树的第一层是年,第二层是月第三层是天,第四层是时,这个时候统计起来就与单词的统计很像了,比较简单。
其实这里就是一个前缀匹配的问题。。。。