如何设计用户余额
bwin娱乐下载
bwin娱乐下载
当前位置 : bwin娱乐下载 > bwin娱乐下载

如何设计用户余额

如果把余额通过存入字段的形式保存, 这样有什么好处和坏处? 那应该适合什么样的方式去设计余额呢?

支付宝的余额有收支明细, 每个出入账单都是一条记录. 但是如果是实时统计的话, 数据量太多统计起来的话应该会有效率上的问题. 如果把余额存入一个字段的话, 如何保证这个值的正确性或安全性, 如果不正确, 如何发现和调整

我们的支付系统余额是一个单独的表保存,字段很简单用户ID,余额,状态,checksum。
余额是decimal10,2
checksum主要是用于防止数据库记录被篡改,可以使用MD5字段值拼接+一个盐,每次访问/更新余额时都需要校验checksum是否正确,更新之后需要重新计算checksum并更新。

余额是一种敏感的东西。要考虑余额的精确度和操作的方便性。
存储余额不允许丢失,使用mysql之类数据库这些持久化存储方式来最大规避。
关于操作的方便性这个要看你自己业务对这个这个字段操作频率还有其他字段关联运算。
精度要考虑,比如你定义字段就要用decimaln,m

之前做过类似的,当时是这样子设计的:
余额用了两个字段表示,可用余额和所冻结的余额
然后还会有一个收支明细,收 - 支 = 可用余额 + 所冻结的余额
然后还有余额冻结记录

可以将整数位和分数位分开储存

栏目列表

广告位

bwin娱乐下载