无限级别分佣模式设计

2018-10-27 03:10:14 +08:00
 rootx
A 邀请了 B C

B 邀请了 D E
C 邀请了 F G

D 邀请了 1 2
E 邀请了 3 4
F 邀请了 5 6
G 邀请了 7 8

当前 A 是团长 BCDEFG12345678 均为会员 因为他们都是 A 这条线带出来的 他们的消费 A 都可以获得佣金

突然 B 升级成为了团长 则需要把 B 这条线带出来的用户都找出来并归给 B:DE1234

查出 B 这条线所有用户 除了数据库记录上级关系 程序用递归法遍历 因为深度未知 所以该方案操作耗时位未知 并且可能随着时间的推移 越顶层的人升级 需要遍历的就越久

还有其他更优雅更快速的方式实现吗?无论是从数据库设计还是程序上。
8970 次点击
所在节点    程序员
44 条回复
sucks
2018-10-27 17:13:16 +08:00
fy
2018-10-27 19:34:10 +08:00
我记得 PostgreSQL 可以写这种递归遍历统计的语句,再加索引套缓存,完事
star1cjl
2018-10-28 00:51:41 +08:00
我有好算法。但是不打算公布。提示一下,时间换空间,空间换时间。自己考虑下吧。
rootx
2018-11-09 23:13:15 +08:00
貌似楼上的方案 都不够优

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/501589

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX