1. 计费表/扣费表/账单表

fee

字段名 字段 类型 说明
账户ID uid string 这个计费的用户,这里用令牌里的own字段来做计费账户
应用ID aid string 这个扣费的应用,这里用令牌里的aud字段来做计费应用
令牌ID tid string 这个扣费的令牌,这里用令牌里的tid字段来做计费应用. 注意这个地方,如果登录令牌,要用一个常量"UsrToken"来代替。
动作 action string 费用修改的动作。
服务名 name string API名,存储对象,上行对象,下行对象,存储文件,上行文件,下行文件
服务数 count int 成功的次数
状态 state int 0=还没有扣费,1=扣费成功
状态 stato string 0=还没有扣费,1=扣费成功
修前余额 bal0 int 动作前余额
修后余额 bal1 int 动作后余额
修改额度 amount int 修改的额度
创建时间 ctime int 创建时间
更新时间 ctime int 更新时间
创建时戳 cstamp timestatmp 创建时间
更新时戳 cstamp timestamp 更新时间
创建时间 ctime int 创建时间
更新时间 ctime int 更新时间
创建时戳 cstamp timestatmp 创建时间
更新时戳 cstamp timestamp 更新时间

为什么计费表名是fee而不是bill?

因为除了扣费,这里面还有充值。那为什么不建两个表,分别表示fee和bill,那样,账户费用的变化就体现不出来。就无法同一个表表达。

那充值的时候,aid和tid字段怎么办?

充值的时候,这两个字段可以默认是常量值,或者充值本身的aid,tid。总之可以避免。充值的时候count必须是1

为什么要把令牌ID放到账单表?

因为大部分扣费场合都需要多令牌,在开发者的角度,自己开发的数据服务,算法服务,可以根据多令牌的方式分发给不同使用用户,令牌存在过期,废弃的情况。所以此时就存在保持应用ID不变,改变令牌的需求。

[!note|label=难道不能通过创建不同应用来应付这个情况吗?] 因为令牌是会被迫不断变化的,而在商业角度,需要一个不变化的扣费ID,这个时候就需要扣费应用ID来做。

results matching ""

    No results matching ""