2010-09-20 72 views
1

我有一個表格,用戶填寫發佈他們的招聘廣告,他們輸入的字段之一是保持工作「開放」的天數。特定日期後自動設置記錄狀態

我希望能夠在輸入日期過後自動將作業狀態更改爲「關閉」狀態。

作業表已經設置狀態和過期,我只需要知道如何自動將狀態從'打開'更改爲'關閉'。

我對MySQL和我需要運行的查詢知之甚少。

回答

5

建議您不要在數據庫中保留status作爲字段,而是從業務或表示層的失效日期中派生出狀態。這可以在您的SQL代碼或客戶端代碼(PHP)中完成。

一些僞代碼:

INSERT INTO JobAd (Description, ExpiryDate) 
VALUES (@Description, @Today + DaysToLive) 

... 

SELECT * 
     , CASE WHEN ExpiryDate<@today 
     THEN 'Expired' 
     ELSE 'Good to go' 
     END AS JobStatus 
FROM JobAd ORDER BY JobStatus, ExpiryDate 

當你把這些工作出來,用PHP寫的狀態返回給用戶,在ExpiryDate部分爲主。再次,這可以在SQL或PHP中完成。

具有派生狀態意味着您不必創建維護過程/任務即可更新數據庫中的屬性。