V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kechx
V2EX  ›  程序员

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

  •  1
     
  •   kechx · Oct 19, 2017 · 2990 views
    This topic created in 3112 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

    各有利弊,根据业务需要设计
    forestyuan
        11
    forestyuan  
       Oct 19, 2017
    有的电商很贱,发的优惠券要过几天才生效,比如今天 19 号,发给你一张优惠券从 22 号到 28 号有效
    如果你们有可能有这种需求,恐怕还要加一个生效时间的字段
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1136 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 23:05 · PVG 07:05 · LAX 16:05 · JFK 19:05
    ♥ Do have faith in what you're doing.