V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RihcardLu
V2EX  ›  程序员

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

  •  1
     
  •   RihcardLu · 2017-10-19 10:08:01 +08:00 · 2607 次点击
    这是一个创建于 2595 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

    各有利弊,根据业务需要设计
    forestyuan
        11
    forestyuan  
       2017-10-19 20:04:52 +08:00
    有的电商很贱,发的优惠券要过几天才生效,比如今天 19 号,发给你一张优惠券从 22 号到 28 号有效
    如果你们有可能有这种需求,恐怕还要加一个生效时间的字段
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5613 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:15 · PVG 11:15 · LAX 19:15 · JFK 22:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.