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

请教一个关于程序设计的问题

  •  
  •   JasonTsang · Sep 17, 2019 · 3225 views
    This topic created in 2415 days ago, the information mentioned may be changed or developed.

    一般系统都会有余额 ,请问大家是怎么设计这个余额的呢?

    比如用户要提现 ,是立刻把用户余额字段里的金额减掉么?

    还是弄多一个字段来 作为冻结这个余额 ?等确定提现成功后再去减掉这个余额的数值呢?

    12 replies    2019-09-18 11:24:43 +08:00
    fengtons
        1
    fengtons  
       Sep 17, 2019 via Android
    这个要看业务流程啊,一般来说直接减就行了
    JasonTsang
        2
    JasonTsang  
    OP
       Sep 17, 2019
    @fengtons 不怕出错么?我第一次写 我怕哪里出问题了 。哪不是大问题。毕竟关于金额的东西
    arrow8899
        3
    arrow8899  
       Sep 17, 2019
    跟普通订单逻辑保持一致,提现可以理解为给银行卡充值。不过还是得看你们的业务
    smallpython
        4
    smallpython  
       Sep 17, 2019
    没有涉及过钱的经验
    不过有问题的话测试测出来你再改就好了
    先完成,在优化
    annielong
        5
    annielong  
       Sep 17, 2019
    提现流程返回正确后再减余额,我一般都用一个单独字段记录余额,积分类的没用单独字段。,
    maichael
        6
    maichael  
       Sep 17, 2019
    扣款 /充值记录要做一个单独的表,用户余额这个字段不能用做保底,一般是用扣款+充值记录校对出来的值保底。
    MarkOrca
        7
    MarkOrca  
       Sep 17, 2019
    有完成的交易历史记录就行,至于这个余额要看业务需求
    wangsyi13
        8
    wangsyi13  
       Sep 17, 2019
    印象中,银行的系统,取款、转账、圈存,都是 atm 发起交易,收到请求-->后台处理成功-->扣款-->发送消息给 ATM-->ATM 出款\写卡(转账只有后台成功就成功)||-->成功-->结束 ||-->失败-->发起冲正交易-->后台撤销扣款|||->冲正成功->结束 |||->冲正失败重试
    wangsyi13
        9
    wangsyi13  
       Sep 17, 2019
    互联网的交易不清楚,没做过。。
    guyeu
        10
    guyeu  
       Sep 17, 2019
    了解一下事务
    hspeed18
        11
    hspeed18  
       Sep 18, 2019
    不要冻结吧,那样有点复杂了。单独设计一个流水表,记录下每一笔入账出账,出现问题时也方便查。然后做好补偿措施,比如提现失败时再把余额补回来就是。
    Pythondr
        12
    Pythondr  
       Sep 18, 2019
    交易流水表 +1
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1302 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 17:19 · PVG 01:19 · LAX 10:19 · JFK 13:19
    ♥ Do have faith in what you're doing.