利索能及
我要发布
收藏
专利号: 2017103514119
申请人: 北京聚通达科技股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-09-09
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于Discuz社区的快速统计方法,其特征在于,包括以下几个步骤:步骤一、构建数据内存计算机制

(1)确定当月天数并构建日历:计算统计年份判断是否闰年,月份天数,设定每日起止时间戳;

(2)确定数据格式及时间区间并访问数据源获取数据:统计计算采用内存数组方式存储固定或临时数据,一些中间交换数据也需要一定空间,修改php.ini中的memory_limit设置项,根据服务器设定内存容量;

步骤二、构建论坛主题哈希表

表pre_forum_post外键tid(主题ID)关联表pre_forum_thread主键,可将pre_forum_thread主键tid哈希化,可以方便pre_forum_post帖子根据tid迅速获取其主题表具体信息,构建哈希表的时间复杂度为O(n);

步骤三、统计处理

(1)遍历论坛帖子和当月日历数组,时间复杂度O(n^2),根据主题帖子哈希表,统计首帖量和对应主题的当日首贴回复量、发帖量、点赞量、阅读量及累计总和;

(2)遍历当月日历数组,根据日统计量分别计算周合计,时间复杂度O(n);

(3)统计结果格式化输出,渲染到前端页面。

2.根据权利要求1所述的一种基于Discuz社区的快速统计方法,其特征在于:所述步骤一(2)中设定内存量为512M,基本满足数十万级的一维数组长度。

3.根据权利要求2所述的一种基于Discuz社区的快速统计方法,其特征在于:步骤一(2)中所述的确定数据格式及时间区间并访问数据源获取数据包括查询论坛回帖表、查询论坛主题表和生成日历网格数据。

4.根据权利要求1所述的一种基于Discuz社区的快速统计方法,其特征在于:所述步骤三、统计处理中判断帖子记录如果不为空,则再判断当前日期是否在起止日期区间内;如果是则判断是否是首贴(first字段),如果不是首贴,则回复帖累计加一;如果是首贴,则再判断是否是主题贴,如果是则点赞、阅读量累计加一;上述获取统计用数据源,注意数据表主键与外键有效性验证,避免数组操作因元素确实引起的崩溃或异常;另外数组长度是动态的,循环遍历时也要注意边界检查。

5.根据权利要求4所述的一种基于Discuz社区的快速统计方法,其特征在于:所述步骤三、统计处理的合计时应按照某年月日计算对应的星期值,以周日为分隔进行再统计,即周一至周日的各项合计;对于月初和月末不满七天的情况单独合计,并对月初到月末的全部数据进行总计。