2010-09-20 74 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中完成。

具有派生状态意味着您不必创建维护过程/任务即可更新数据库中的属性。