2010-10-16 54 views
1

目前,我正在與一個網站。這個網站是使用PHP和PostgreSQL編寫的後端。對於服務器我使用Apache(XAMPP)。我的網站擁有免費會員資格和高級會員資格。高級會員資格有效期爲1年,註冊後,用戶會員資格將恢復爲免費會員資格。再次成爲高級會員,用戶應該支付會員費,並且該帳戶將在未來1年再次升級(想象Rapidshare會員!)。如何創建自動化流程來檢查和降級過期的成員資格?我認爲它應該是一個後臺進程(postgresql),但我並不確定。任何想法或解決方案?網站PHP自動化流程PostgreSQL

非常感謝:)

回答

1

一個想法是這樣的:

  • 用戶支付溢價
  • 腳本將在配有高檔取消日期的數據庫中的條目,以抵消日期和用戶FK
  • 每天cron/at(取決於操作系統)作業搜索數據庫取消日期與今天的日期,並取消各自用戶的高級會員

我希望它能幫助你:)

+0

嗯,但是如何讓網絡託管不在我的辦公室?我使用第三方網絡託管。雖然我爲它的服務付出了代價,但我擔心他們不會給我特權來訪問他們的cron ... – GuyFreakz 2010-10-27 08:52:40

+0

@GuyFreakz如果你不能這樣做,你可以嘗試類似於jmz的答案 – 2010-10-27 18:10:58

+0

就我而言知道,SQL Server有能力處理後臺進程。我曾經閱讀過一篇關於某人從他的數據庫中自動刪除非活動會員帳戶的在線文章,但我忘了,在哪裏閱讀它。現在,我已經完成了jmz的建議。謝謝! – GuyFreakz 2010-10-28 03:43:17

1

使用表模式像這樣的:

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 = ? 

現在當高級會員資格有效時,選擇accounts將產生is_premium_membership屬性,即t。無需後臺工作。

+0

現在,這就是我所做的; p – GuyFreakz 2010-10-27 08:50:10

1

爲什麼每次用戶登錄時都不檢查?

+0

以及如果用戶保持登錄狀態兩週左右?我知道我還沒有註銷Gmail(例如)1個月左右 – 2010-10-16 12:44:35

+0

這是正確的加比... – GuyFreakz 2010-10-27 08:48:08