现在设计一个用于营销系统的代理层级关系,一级代理开设二级代理,二级代理开设三级代理一直到10代,各级代理发展会员下单。需求是快速查出指定层级代理下所有会员(不管是不是直属会员)下单总额。递归相当的浪费性能啊!有不递归的方法吗?
现在设计一个用于营销系统的代理层级关系,一级代理开设二级代理,二级代理开设三级代理一直到10代,各级代理发展会员下单。需求是快速查出指定层级代理下所有会员(不管是不是直属会员)下单总额。递归相当的浪费性能啊!有不递归的方法吗?
表字段:一级ID,二级ID.....十级ID,下单金额
每次插数据的时候,把当前会员的所有上级ID都插进去,之后你想查几级ID就取对应的列进行求和。
比如你要查某个五级ID下总金额,那么就是:select sum(下单金额) from table where 五级ID='AAAAA' AND 六级ID IS NOT NULL
4 回答1.2k 阅读✓ 已解决
8 回答1.2k 阅读
3 回答1k 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.2k 阅读
1 回答856 阅读✓ 已解决
1 回答649 阅读✓ 已解决
其实很简单的问题,看系统设计了。如果代理是无限级的,并且真的可能会超过100+,那还是做缓存吧。如果不是只有几级而已。
那就做冗余吧。
冗余:
可以很简单的获取
我的下级都有谁
和我的上级的代理链
。--
mysql5.7 以后可以直接用数组或json处理数据