crm系统统计表的设计问题

原创
2016-08-18 09:15:39 1013浏览

目前在做一个crm的统计功能,需要建立相关表来存储与用户有关的各种数据。
比如:统计当日某员工新增客户数。
先设计了一个统计表来存储员工每天的客户数。
然后在员工添加客户的时候,在统计表中的相应字段加1。删除客户的时候,统计表中相应字段减1。
这个触发加1减1的操作,用swoole来异步执行。

最近,还需要添加统计本周、本月、本季度、本年统计数据的功能。

我就把【日统计表】复制了四份出来,分别对应【周统计表】、【月统计表】、【季度统计表】、【年统计表】。
这五个表的数据结构差不多。

我现在的问题是:
1.我之前这种用异步触发来统计用户每日客户数的方式,是否是最优的?是否还有别的更好的方式?
2.统计周、月、季度、年的数据的时候,是从【日统计表】中计算出来好,还是直接建这么四个表还是用异步触发的方式来直接存储相关数据好?

有没有高手能解答一下,在此万分感谢

回复内容:

目前在做一个crm的统计功能,需要建立相关表来存储与用户有关的各种数据。
比如:统计当日某员工新增客户数。
先设计了一个统计表来存储员工每天的客户数。
然后在员工添加客户的时候,在统计表中的相应字段加1。删除客户的时候,统计表中相应字段减1。
这个触发加1减1的操作,用swoole来异步执行。

最近,还需要添加统计本周、本月、本季度、本年统计数据的功能。

我就把【日统计表】复制了四份出来,分别对应【周统计表】、【月统计表】、【季度统计表】、【年统计表】。
这五个表的数据结构差不多。

我现在的问题是:
1.我之前这种用异步触发来统计用户每日客户数的方式,是否是最优的?是否还有别的更好的方式?
2.统计周、月、季度、年的数据的时候,是从【日统计表】中计算出来好,还是直接建这么四个表还是用异步触发的方式来直接存储相关数据好?

有没有高手能解答一下,在此万分感谢

你们客户量是多少?假如百万级别或以下,如果是我来做,都存一张表也可以啊。表里有两个字段,一个叫created_at,一个叫deleted_at,都是datetime类型,然后对这两个字段作索引。

以后统计的时候实时查询即可,百万级以下速度飞快的,而且你想查什么范围就查什么范围。数据再多点,就加个缓存也能轻松解决性能问题。弄很多张表来搞这个事情复杂度太高了,得不偿失

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。