如何统一券类产品的两种有效期设置?

2017-10-19 10:08:01 +08:00
 RihcardLu

对于券类产品的有效期设置,一般有两种方式:

  1. 相对时间:自领取之日起 x 天内有效
  2. 绝对时间:有效期至 xx 年 xx 月 xx 日

在数据库设计中,如果用两个字段去分别记录这两个时间,这样在计算时颇为麻烦,

不仅先要判断设置的是哪种时间,还面临着相对时间和绝对时间的相对转化,

有没有某种方法或设计可以统一用一个字段来存储有效期?

2606 次点击
所在节点    程序员
11 条回复
TimePPT
2017-10-19 10:14:24 +08:00
全部按绝对时间走,第一类领券成功后做时间计算后再入库呗,不需要多一个字段
qiayue
2017-10-19 10:15:59 +08:00
如一楼所说,只存过期时间,用时间戳形式
RihcardLu
2017-10-19 10:16:31 +08:00
@TimePPT 我也是这么想的,但有一点问题
1. 券生成
2. 券领取
在券的领取部分肯定会统一为绝对时间,但在券生成过程中,还是需要记录两个时间。
stanjia
2017-10-19 10:17:24 +08:00
优惠卷是个系统, 以后肯定 不止只有这 2 种形式
RihcardLu
2017-10-19 10:19:53 +08:00
@stanjia 优惠券系统确实不这么简单,包括品类绑定、多样发放形式等等,这里单指有效期这一点。
nullcoder
2017-10-19 11:38:53 +08:00
#3 什么情况下会存在生成不被领取?
xiaogg
2017-10-19 11:50:51 +08:00
统一用过期时间戳格式。对于第一种时间格式:自领取之日起 x 天内有效,通常这个 X 不会太大,所以可以取巧处理一下,时间戳小于某值(比如 100,1000 等)判断为是第一种时间格式,表示 X 天,领取后再算过期时间戳,然后更新数据库。
RihcardLu
2017-10-19 11:57:36 +08:00
@nullcoder 生成的券种类使用一张表,记录券的发放数量、有效期之类的,然后用户领取 /使用用另一张表,记录领取时间、使用时间之类的,
@xiaogg 哈哈,这种方法也想到,总觉得有点怪怪的
Humorce
2017-10-19 12:58:03 +08:00
type : default / daily / weekly / monthly
nullcoder
2017-10-19 12:59:34 +08:00
#8 所以生成券,或者说券种类的字典表可以有时间长度
用户领取,存入的时候做处理,只要失效截至日期就可以了,然后给用户显示

或者你担心这两个对不上,那就是用户领取时有领取日期,和券种类存入。
处理之后计算失效日期,返回显示

各有利弊,根据业务需要设计
forestyuan
2017-10-19 20:04:52 +08:00
有的电商很贱,发的优惠券要过几天才生效,比如今天 19 号,发给你一张优惠券从 22 号到 28 号有效
如果你们有可能有这种需求,恐怕还要加一个生效时间的字段

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

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

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

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

© 2021 V2EX