表的设计
表的关系经常容易搞混,所以记录一下,方便回忆。
系统表
策略表(strategy):定义了不同的抽奖策略:不同策略抽奖的概率不同,抽奖的规则不同。
策略奖品表(strategy_award):不同策略对应的奖品信息:包含奖品的概率、奖品的库存、抽到奖品的后置规则等。
策略规则表(strategy_rule):不同策略有哪些前置规则:比如配置的黑名单、权重信息。
规则树表(rule_tree)、规则树节点表(rule_tree_node)、规则树节点连线表(rule_tree_node_line):这三个表可以构成抽奖的后置规则树。
活动表(raffle_activity):配置了用户参与一个活动的时候,需要进行的必要信息。比如:起始和终止时间、活动对应的策略。
活动sku表(raffle_activity_sku):用于后续积分兑换的商品,也用于签到返利。包含:sku的库存、价格等信息

活动sku库存表(raffle_activity_count):包含sku返利信息:比如能加多少次抽奖次数。
签到返利配置表(daily_behavior_rebate):签到返利配置
用户表
活动账户表(raffle_activity_account):包含某个用户总共的抽奖次数、可用的抽奖次数
活动订单表(raffle_activity_order):涉及用户与sku商品交易的订单表,包括:签到返利、积分兑换
用户抽奖订单表(user_raffle_order):参与活动产生的订单
返利订单表(user_behavior_rebate_order):签到返利产生的订单
积分账户表(user_credit_account):积分账户
积分订单表(user_credit_order):积分变化产生的订单,比如:签到返利、积分兑换sku
奖品记录表(user_award_record):抽奖记录表
task表:任务补偿。如果MQ发送失败,使用定时任务补偿。
总体结构如下
