我有一个资源,其中有一个可用性字段,列出一天中可供使用的小时数?mysql - 存储一系列值
例如。 res1每天0-8,19-23小时之间可用,此处的范围可以是小时范围的逗号分隔值。例如0-23,24小时访问,0-5,19-23或0-5,12-15,19-23
什么是最好的方式来存储这一个? char是个不错的选择?当资源被访问时,我的php需要用这里定义的小时来检查当前小时,然后决定是否允许这个访问。我可以让mysql告诉我当前小时是否在这里指定的范围内?
我有一个资源,其中有一个可用性字段,列出一天中可供使用的小时数?mysql - 存储一系列值
例如。 res1每天0-8,19-23小时之间可用,此处的范围可以是小时范围的逗号分隔值。例如0-23,24小时访问,0-5,19-23或0-5,12-15,19-23
什么是最好的方式来存储这一个? char是个不错的选择?当资源被访问时,我的php需要用这里定义的小时来检查当前小时,然后决定是否允许这个访问。我可以让mysql告诉我当前小时是否在这里指定的范围内?
我会存储在单独的表,其中的每一行我会(给你的例子)项的可用性:
ID,startHour,endHour,RESOURCEID
而且我只用整数的开始和结束时间。然后,您可以使用HOUR(NOW())或您有什么来针对连接执行查询,以查看某天某个小时的可用性。
(在另一方面,我会一直像首选MongoDB的非关系型数据库对这种数据的)
1)创建资源可用性,规范化的表。
CREATE TABLE res_avail
{
ra_resource_id int,
ra_start TIME,
ra_end TIME
# add appropriate keys for optimization here
)
2)与填充($ RESOURCE_ID, '$ START_TIME', '$ END_TIME')在您的列表中的每个范围(使用爆炸())
3)然后,你就可以查询:(例如,PHP)
sql = "SELECT ra_resource_id FROM res_avail where ('$time' BETWEEN ra_start AND ra_end)";
....