在具有定期(例如:每月)订阅的付费应用程序的mysql数据库中,检查订阅已过期的用户并使其处于非活动状态的最佳方法是什么? 通常情况下,我只是检查应用程序是否已过期,但有几种类型的帐户,例如免费,试用等,这些帐户将没有到期期限。
我想在客户端应用程序方面保持简单,并且只需要检查“活动”状态,并允许用户使用应用程序,而不是切换案例所有帐户类型和到期日。此外,根据客户的要求,帐户类型可能会有所不同,如果逻辑位于(php)后端,则可以在不需要新客户端版本的情况下进行更新。
表格是这样的:
User ID | Expiry date | Status
我目前正在做的事情是我有一个偶尔运行一次的cronjob并更新所有过期日期已经超过当前时间的用户。
总结一下,我的问题是:
答案 0 :(得分:0)
为什么不在用户登录时检查用户是否未过期。
即。查询如
SELECT COUNT(*), expiry IS NULL OR expiry > NOW()
FROM users
WHERE username = ?
AND password = ?
然后检查您是否可以检查用户名/密码组合是否正确以及帐户是否已过期。对于没有到期日期的帐户,请使用NULL。
这样做的好处是,每天只需要检查一小部分帐户(猜测一下,当用户登录时,会有超时的会话)。
答案 1 :(得分:0)
您可以为此任务创建CRON JOB。