将用户帐户设置为在给定时间后过期

时间:2014-03-21 02:55:03

标签: php mysql sql

数据库中的users表包含以下字段(其中包括):

  • 创建日期(用户加入的日期)
  • 已确认(如果用户已确认其电子邮件,则设为1)
  • 已批准(如果用户已获得管理员批准,则设为1)

我想要做的是创建另一行,称为“句号”,将更新为 1如果用户想加入1个月, 2,如果他想加入6个月,和 3,如果他想加入1年

我想知道在所选期限到期后是否有可能以某种方式自动将批准从1设置为0。 我只想提出一些想法...我希望在阅读你的意见后,我可能会在我的具体案例中找到最佳解决方案....

你会如何处理这样的问题?

2 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是使用视图。您可以将当前时间与订阅的结束时间进行比较:

create view v_users as
    select u.*,
           (now() < (datecreated + interval (case when period = 1 then 1
                                                  when period = 2 then 6
                                                  when period = 3 then 12
                                              end) month
                    )
           ) as approved
    from users u;

答案 1 :(得分:0)

我会建议采用以下方法 -

  1. 您应该添加其他列,而不是添加新行。 subscription_type 类型枚举 - 0 - 有效期为0天,1 - 有效期为1个月,2 - 有效期为6个月,3 - 有效期为1年。

  2. 您可以拥有一个可以检查过期和处理内容的cron作业。