订阅管理逻辑

时间:2011-12-23 15:14:00

标签: design-patterns e-commerce subscription user-management recurring-billing

对于用户可以是memberadmin的系统,具有member角色的用户必须使用定期订阅付费,或者获得免费访问权限。

我目前的做法:

  • 用户拥有user数据库表。
  • 如果用户有订阅,则subscription表包含用户的记录。
  • subscription_event表记录每次结算或付款失败。我可以查询这个以查看最后一个事件是否确实是一个成功的付款。

但是,如果用户获得“免费”访问权限,我应该如何记录?

  • 是否有另一个表complimentary_subscription,其中用户ID为外键?
  • subscription
  • 中为他们录制特殊的“订阅”
  • 或者为is_complimentarycomplimentary_expires_date等列添加另一列到其用户行?
  • 向用户行添加更常规的expires列?

1 个答案:

答案 0 :(得分:1)

免费订阅是订阅。到期付款金额和订阅价格为零。它的到期日期是您设置的免费订阅与常规订阅的到期日期。

如果您当前的设置不允许您根据这些因素成功查询免费订阅/用户,则只需要一个单独的列或表。

注意:我假设您目前将用户与订阅价格相关联。无论如何,如果订阅价格在未来发生变化,或者您想为定期或促销用户提供折扣,您还是需要知道。