MySQL / PHP多个日期和时间

时间:2010-11-04 12:56:04

标签: php mysql date

我在MySQL数据库中有一个表jobs; - 每个作业都属于一个用户(在users中注册) - 每份工作都有待执行的日期和时间。

目前,日期和时间存储在UNIX时间戳的序列化数组中(供PHP使用)。但是这对于尝试检索来说并不是最佳的,让我们说“用户123的tomotrrow作业”,因为PHP必须首先遍历属于用户123的每个作业,反序列化数组并查看明天是否包含时间戳。 / p>

创建表dates4jobs会保留原子性,但仍然不是最优的,因为我必须查询“用户123”的“所有作业”,然后查找所有“日期”,并使用相应的指针指向用户123的工作和blablabla ...

你怎么了? ^^

1 个答案:

答案 0 :(得分:0)

只是一个建议:在jobs表中使用时间列而不是序列化(或两者)。如果要存储多个时间戳,最好使用datejoblookup表来提出有关jobs.id和每个日期的引用的建议。我不鼓励在PHP中手动迭代数据。然后,您可以通过一个选择运行查询“明天为用户123工作”:

SELECT job.* FROM `jobs` job, `users` user, `datejoblookup` date
WHERE date.jobid = job.id            --make sure the date belongs to this job
AND job.userid = user.id             --make sure the job belongs to the right user
AND user.name = '123'                --select the user with name '123'
AND DATE(date.timestamp) = CURDATE() --select jobs for today

还要考虑可扩展性以及将来可能需要运行的查询。此设计将启用“从date1到date2的作业”

之类的查询