统计会员半年复购率的问题(7天、15天、30天)

发布于 2022-09-07 08:52:52 字数 780 浏览 43 评论 0

order 订单表 字段 id order_no(订单编号) business_id(商户ID) user_id(会员ID)money(消费金额)
user 会员表 id name 会员名称
business 商户表 id name 商户名称

基数:200个商户 一个商户可能有200个顾客
前提:会员购买过一次,第二次购买就算复购
问题:有什么好的设计方案和想法

目前我所想到的方法:
新建一张表,存商户和会员的关系

re_business_user

business_iduser_idnumbermoneydatecreated_at
商户ID用户ID购买次数购买金额时间(2018-05-11)创建时间

每天用户在某个商户购买商品时查询一下关系表(re_business_user)数据是否存在(where 条件中加上date等于当前的时间2018-05-11),不存在新增一天记录,存在则更新购买次数+1和购买金额增加
这样设计我就可以很快的计算出7天复购率,15天复购率,30天复购率

这样设计会造成整张表数据量过大,一个月大概会有120W数据(20020030)

各位大佬有什么好的想法可以解决这个问题吗?谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橘和柠 2022-09-14 08:52:52

咳咳,先个人觉得 120w 并不大(习惯吐槽)。然后你既然是分段的,那不若直接建立索引就好了。当然,如果说优化,确实是建立新的一个表记录会比较好些。
其实我个人理解,数据库的使用就两种情况,一种用空间换时间,另一种自然是用时间换空间。是我的话,个人会选择只是优化表的索引,然后再进行查询就好,考虑到你做的复购率的调查频率不会很高,用时间作为代价运作也是可以的。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文