网站PHP PostgreSQL的自动化过程

网站PHP PostgreSQL的自动化过程,php,apache,postgresql,Php,Apache,Postgresql,目前,我正在与一个网站合作。本网站使用PHP编写,后端为PostgreSQL。对于服务器,我使用Apache(XAMPP)。我的网站有一个会员功能,包括免费会员和高级会员。高级会员资格在注册后1年内有效,之后用户会员资格将恢复为免费会员资格。要再次成为高级会员,用户应支付会员费,并且该帐户将在未来1年内再次升级(想象一下Rapidshare会员!)。如何创建一个自动化流程来检查和降级过期的成员资格?我认为它应该是一个后台进程,用于后端(postgresql),但我不太确定。有什么想法或解决办法吗

目前,我正在与一个网站合作。本网站使用PHP编写,后端为PostgreSQL。对于服务器,我使用Apache(XAMPP)。我的网站有一个会员功能,包括免费会员和高级会员。高级会员资格在注册后1年内有效,之后用户会员资格将恢复为免费会员资格。要再次成为高级会员,用户应支付会员费,并且该帐户将在未来1年内再次升级(想象一下Rapidshare会员!)。如何创建一个自动化流程来检查和降级过期的成员资格?我认为它应该是一个后台进程,用于后端(postgresql),但我不太确定。有什么想法或解决办法吗


非常感谢:)

一个想法是这样的:

  • 用户付费
  • 脚本在数据库中插入具有高级取消日期、取消日期和用户FK的条目
  • 每日/(取决于操作系统)作业在数据库中搜索以今天为日期的取消日期,并取消相应用户的高级会员资格

我希望它能帮助您:)

使用如下表模式:

CREATE TABLE all_accounts (
    id INTEGER NOT NULL PRIMARY KEY,
    premium_expires DATE NOT NULL DEFAULT current_date,
    other_attrs,
    ...
);
然后创建用于查询的视图:

CREATE VIEW accounts AS
SELECT
   account.*, current_date < account.premium_expires AS is_premium_membership
FROM
   account
WHERE 
   id = ?
创建查看帐户作为
挑选
帐户。*,当前\u日期

现在,选择
accounts
将产生
is\u premium\u membership
属性,该属性在premium membership有效时为
t
。不需要后台作业。

为什么不每次用户登录时都检查一下呢?

如果用户登录两周左右怎么办?我知道我已经有一个多月没有退出gmail了(比如说),我就是这么做的;pHmm,但是当网络主机不在我的办公室时,我怎么能做到呢?我使用第三方网络托管。虽然我为它的服务付费,但我担心他们没有给我访问其cron的特权…@GuyFreakz如果你做不到这一点,你可以在jmz的回答中尝试一下,据我所知,sqlserver有能力处理后台进程。我曾经在网上读到一篇关于某人自动从数据库中删除非活动会员帐户的文章,但我忘了,我是在哪里读到的。现在,我已经按照jmz的建议做了。谢谢