php三级分销思路数据库设计_三级分销系统系统设计
系统业务⽬标
系统⾓⾊:货主,各级分销商(定三级),⽤户,购买者
货主可以将⾃⼰的商品上架
货主可以设置通⽤分销⽐例
货主可以发展⼀级分销商并设置分销⽐例(通⽤分销⽐例)
货主可以设置商品的分销⽐例(商品分销⽐例)
分销优先级 商品>通⽤
⼀级分销商可以发展⼆级,⼆级分销商可以发展三级,三级不可以发展分销商
⽤户转发商品链接被其他⽤户进⼊购买则发彩蛋给分享⽤户
常见场景
货主上架商品,设置商品性质为可分销,设置该商品分销⽐例
货主发展⼀级分销商,⼀级分销商以商品维度绑定货主
⼆级分销商发展三级分销商
货主管理⼀级分销商,⼀级分销商管理⼆级分销商,⼆级分销商管理三级分销商
主要流程
⽤户购买商品并⽀付成功
发通知订单⽀付成功
查询订单内的商品和数量
查询各个商品的分销规则,没有商品分销规则的则查询通⽤分销规则
查询订单的分销者信息,确定分销者的分销级别
计算各级分销者应得,⽣成分销订单
技术⽬标
分销关系的存储
⽔平可扩展
服务的单⼀性保证
⾮阻塞服务异步化
技术实现
表设计
01 表设计
分销(邀请)关系表:存储分销者的关系(树形关系)
分销订单表:记录各个⾓⾊的分红信息
通⽤分销规则表:记录分销商设置的分销规则
商品分销规则表:记录分销商设置的商品分销规则
以上表依赖:
⽤户表,商品表
02 服务设计
服务设计
依赖服务:
1.⽤户服务
2.订单服务
3.商品服务
4.钱包服务
这⾥详细介绍⽤户邀请逻辑关系的建⽴
注册
奖励的触发:注册和拿⼿完成活动
奖励触发涉及对账户和⾦额的操作,需要做到必达性,即奖励活动的完成确认。
php修改数据库内容邀请关系的建⽴有⼀个⿇烦的业务处理,需要在注册的时就建⽴关系。
主要的注册⽅法是异步处理,保证注册成功并迅速完成。注册时从页⾯上带有的邀请⼈id到邀请⼈的⽤户信息,然后建⽴关系。
但三级分销是多层关系的,返款时不但需要到邀请⼈,还要到⼀级分销。如果查多个表单对产品性能影响很⼤。所以在每个⼈注册时不但存储邀请⼈和⾃⼰的邀请关系,同时要确定邀请⼈是否满⾜⼀级分销的条件,如果满⾜,对这个⼀级分销的所有⼦集都打⼀级分销标签。
数据库设计
03 数据库设计
数据库设计原则
1) 准确记录账户基本信息,特别是状态。
2) 交易时要正确记录下交易信息和账户状态。
3) 交易记录是历史性的,不可篡改。
4) 交易是连续的,对时间要求准确。
5) 交易记录要完整,对安全性有要求。
主要数据表
1) 账户基本信息表
记录账户的持有⼈姓名、联络⽅式、余额、有效期、密码、流通范围等。为了安全,该表还应该由账户、姓名、有效期和余额组成的检验串,防⽌有⼈恶意修改余额或账号。
2) 交易记录表
记录每⼀笔交易信息,除了记录交易账户、交易时间、交易⾦额、交易后余额和交易内容(充值或消费购物)外,还应该记录下账户的其它基本信息,如账户持有⼈姓名、交易地点等。
交易记录不建⽴使⽤太多的代码表⽰特定意思,所有交易必须有数据完整性校验,即⼀⾏记录⼀旦⽣
成后其校验串也就固定了,防⽌有⼈恶意修改记录。
3) 账户变更记录表
由于账户基本信息是可变更的,基于交易系统的交易记录的历史性和档案性,所以对账户基本信息的任何变更都必须有记录,由什么变更为什么,⼀定要有记录。
4) 操作⽇志明细表
所有的操作必须有详细的⽇志记录。