## 各位,我有一个业务上的问题想请教下大家。

2020-04-25 17:45:29 +08:00
 liubx

现在有一个统计用户订单金额和提成的功能,根据用户首单时间来判断用户的订单是新用户订单还是老用户订单。

我现在实现的方法是,把订单表和退单表全部存到一个新的统计表中,在操作这个统计表来区分新订单和老订单。

然后之后的业务操作都根据这张统计表来查询。

3127 次点击
所在节点    MySQL
10 条回复
xizismile
2020-04-25 18:51:25 +08:00
根据用户首单时间来判断用户的订单是新用户订单还是老用户订单

是否是新用户能不能单独存一张表或者存到用户表的字段里?不用每次都拿订单来计算
huang7230468
2020-04-25 22:25:03 +08:00
我觉得首先应该确认下在业务上,用户先下单然后再退单,那么该用户还是否是新用户了?
MikeLei
2020-04-25 23:35:02 +08:00
一点不成熟的想法:
单独一个表专门记录首单优惠。
一个总订单表,这个表里面包含退单,完成单,取消单等等,再根据不同订单状态分拆分几个订单表,这时候就是一条数据至少存储在两个表上,一个是总订单表,一个是相对应状态的订单表,感觉这样速度应该会快很多。
xizismile
2020-04-25 23:47:14 +08:00
@huang7230468 这样一想。把业务改成新用户发张优惠券更方便一些,就不用考虑首单还是不首单了。
Jooooooooo
2020-04-26 00:23:56 +08:00
统计的可以定时任务跑
liubx
2020-04-26 16:12:49 +08:00
@xizismile 我现在有一张订单统计表,有字段表示订单是新订单还是老订单了。
liubx
2020-04-26 16:15:08 +08:00
@huang7230468 这个的逻辑是这样的。首先用户下的第一单就是首单(付款成功的订单)。如果订单跟首单比较超过 3 个月就是老订单了,否则就是新订单
liubx
2020-04-26 16:16:58 +08:00
@MikeLei 我现在就是这样的,订单和退单都存到一张订单统计表中,根据字段区分是新订单还是老订单。但是这种方式,数据多了就会很慢
liubx
2020-04-26 16:17:53 +08:00
@xizismile 这个不能改的。。。我只负责统计
liubx
2020-04-26 16:18:52 +08:00
@Jooooooooo 嗯,现在就是定时任务跑,就是一次得 5 分钟。如果之后数据多了,估计会更慢了

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

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

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

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

© 2021 V2EX