我想在 PHP 和 MySQL 驱动的网站上创建一个简单的基于订阅的帐户管理。我需要跟踪某些类型的用户帐户和订阅的长度。我希望用户能够选择一个“订阅包”(青铜、白银、黄金)和他希望订阅持续的时间跨度(一周、一个月、一年)。
但是,评级较高的订阅(金 > 银 > 铜)应优先于评级较低的订阅。这意味着,如果用户应该同时拥有白银订阅和黄金订阅,那么显然应该首先使用黄金订阅的时间跨度,并且只有当它用完时,才应该使用白银订阅。
为了在内部存储订阅,我创建了一个表:
INT id
INT user_id
INT type
DATETIME start
DATETIME end
我的问题是:如何确定用户帐户在某个时间点是否有有效的订阅以及该订阅的类型?最重要的是,当已经有一个订阅正在运行时,我会对如何动态添加更多订阅感兴趣。
更精确的例子:
- 用户在第 1 天购买了 5 天的青铜 -> 订阅“青铜”从第 1 天到第 5 天运行。
- 在第 2 天,用户决定他想要额外的“银”并再购买 5 天
- 现在的情况:铜牌(第 1 天)、银牌(第 2-6 天)、铜牌(第 7-10 天)
最好,我想在 MySQL 查询中完成大部分工作,但我不确定这是否可能。如果一切都失败了,我将不得不求助于 PHP。
谢谢你的时间!