我了解到,如果您想让Google数据标记识别您的数据,则应遵循以下准则:
https://schema.org/openingHours
http://schema.org/OpeningHoursSpecification包含“有效日期”,这对某些企业非常有用。
https://schema.org/docs/search_results.html#q=小时
没有主键的情况应该没问题,除非您允许企业与联接表共享相同的时间-有趣的是,最终您将获得有限数量的组合;我不确定会有多少:p
在我的一个项目中,我使用了以下列:
[uInt] business_id,[uTinyInt] day,[char(11)] timeRange
如果要支持OpeningHoursSpecification,则需要添加validFrom和validThrough。
时间范围的格式如下:hh:mm-hh:mm
这是一个解析它的函数,如果您将其保留为数据库中的单独列,则还可以修改此函数以仅解析一个打开/关闭。
根据我的经验,我建议您在一天之内允许多次,允许您确定当日它们是明确关闭还是24小时或24/7营业。我曾经说过,如果数据库中缺少一天,那么该天该业务将关闭。
/**
* parseTimeRange
* parses a time range in the form of
* '08:55-22:00'
* @param $timeRange 'hh:mm-hh:mm' '08:55-22:00'
* @return mixed ['hourStart'=>, 'minuteStart'=>, 'hourEnd'=>, 'minuteEnd'=>]
*/
function parseTimeRange($timeRange)
{
// no validating just parsing
preg_match('/(?P<hourStart>\d{1,2}):(?P<minuteStart>\d{2})-(?P<hourEnd>\d{1,2}):(?P<minuteEnd>\d{2})/', $timeRange, $matches);
return $matches;
}