话说上一篇我们讲了账户的主体,主体用唯一身份ID关联了多个账户ID,今天我们就讲一下账户结构和账户的余额结构;为了便于理解,我们前期不涉及科目概念以及会计分录的话题,最后几篇我们回过头来站在会计角度看复式记账问题将会很容易理解。
上篇回顾
我们回顾一下上一篇,这样可以衔接的上,下面是账户主体管理表
下面是这个主体所开通的所有账户的账户主表,通过主体ID关联账户ID
1、简单账户结构
账户结构一个是本身的结构有什么组成,另一个就是账户体系内账户与账户之间的构成模型,我们主要说后者,我们看几个最简单的账户结构。
只有一类账户,比如整个账户系统只有一类账户:张三-工资账户。
有多个类型的账户,比如下图,但本质上依然很简单,很容易管理。
2、简单余额结构
余额结构就是针对账户内部来说,账户的余额如何划分,就像火锅,有一个锅,鸳鸯锅,九宫格,一样,账户作为一个容器,其内部依然可以划分成多个存储空间
只有一个余额的余额结构,你会发现微信钱包的余额就只有一个,有多少就是多少,简单粗暴
这样的余额结构必然支持的交易种类就很简单,收入,支出;无法支撑其他的针对余额的处理。
3、复杂账户结构
随着业务的复杂度增加,各类功能性以及运营需求增加,简单的账户结构开始变得复杂,以支撑更复杂的业务模型,比如红包可能每个业务线都要推出一种红包营销形态,比如保险业务线,游戏业务线;而红包又被拆分成了现金红包,虚拟币红包等这样的话红包账户结构就成了多层级的账户结构;如下:
看着是不是很像会计科目的结构,最下一层是不是很像叶子科目,当然第二层和第三层换一下位置也可以;这种情况下账户结构就很复杂了,而且自然存在了总账户和明细账户之分。
还有一种是账户结构分总分机构,但二级账户的种类繁多,功能划分较细,这类账户结构具有支撑复杂的记账能力,以及业务处理能力,这类账户结构常见在二清监管户体系,比如下面具有众多子账户的账户体系,协同完成资金的监管和分账职能。
一朋友咨询我人力资源代理平台的账户该如何设计,业务模型就是平台帮助很多企业代收代发工资,并且支付公积金和社保等多种资金款项,我设计了四个方案,你觉得那个方案好呢。
4、复杂余额结构
因为资金清算周期或者业务流转节点多,或者其他风控要求,需要对账户余额进行复杂的处理操作,比如有的能提,有的不能提,最常见的结构就是三个余额属性。
核算恒等式:总余额=冻结余额+可用余额
这样的话,就可以对账户余额进行一些处理,比如发的红包7天后才能提现,那么红包入账户时就会先入冻结余额,7日后解冻之可用余额。
5、账户结构和余额结构的关系
从上面我们可以看到,账户可以分多级,余额可以分多块,那么有什么关系呢。
多级之间:x级总账户总余额=sum( x-1 级子账户所有账户总余额之和 )
某个账户:总账户余额=冻结余额+可用余额
上面另个恒等式可以用于校验账户系统记录的合法性,是不是觉得跟会计系统科目之间的试算平衡很类似。
6、账户管理表的设计
通过前面的账户主体,账户结构,账户余额结构,我们基本可以设计出账户表的基本字段了,只要包含这几部分信息:账户主体信息,账户结构信息,余额信息,账户状态信息,我们设计如下,除了核心字段以外,其他想展示的字段可以去相关表中查询,比如主体姓名,可以用主体ID去主体表中查询。
7、余额的变化
我们简单说一下,后面在将流水和余额更新时会细讲;账务请求账户入账时,基于冻结规则我们可以知道该笔入账是否需要冻结,如果需要冻结的话就更新冻结余额,后面再解冻,如果不需要冻结的话就直接更新可用余额。
作业:思考一下,如果你是蚂蚁财富的账户产品经理,你会如何设计账户结构和余额结构,来满足业务模型呢?欢迎在产品群或者星球提交作业!(备注小心有坑哦)
我们下篇讲费用和入账规则设计。