关于如何处理高级帐户、计划期限和续订的架构提示

Architecture tip on how to deal with Premium accounts, plan duration and renewal

我正在创建一个具有高级用户功能的网站。我正在考虑如何设计数据库来存储高级用户计划,以及如何检查它..

到目前为止我的主要想法是:

我觉得这是一个简单的设计,但由于这是许多网站的共同特征,所以我想问问你们专业人士是如何做到这一点的?

这可能不会对设计产生太大影响,但我将使用 Stripe 来处理付款。

我觉得不错。很简单,解决了你的问题。

提示 1:根据 premiumexpires 字段的语义,您不需要两者。您只需更改 user->isPremium() 即可检查过期日期是否已过。确保您还更改了处理续订的方式。

提示 2:我在处理计划订阅的系统中工作,我不得不处理以下情况:

  • 允许用户 renew/extend 在到期日期前订阅。
  • 不同时长的不同价格。
  • 折扣。
  • 账单生成和付款确认之间的延迟。
  • 有待付款的用户试图再次购买。
  • 用户要求取消当前订阅。

希望对您有所帮助。